window.TMAP_AUTHKEY = "9f6a28f8616c77682817160cf139ec48"; window.T = window.T || {}; (function() { function each(t, i) { for (var n in t) t.hasOwnProperty(n) && i(t[n], n, t) } function find(t, i) { if (t.length) { for (var n = 0; n < t.length; n++) if (i(t[n])) return t[n] } else for (var e in t) if (t.hasOwnProperty(e) && i(t[e])) return t[e] } function first(t) { for (var i in t) if (t.hasOwnProperty(i)) return t[i] } function length(t) { var i = 0; for (var n in t) t.hasOwnProperty(n) && i++; return i } function prepend(t, i) { t.children.length ? t.insertBefore(i, t.children[0]) : t.appendChild(i) } T.Version = "4.1.5", T.q = { W: function(t, i) { switch (arguments.length) { case 1: return parseInt(Math.random() * t + 1); case 2: return parseInt(Math.random() * (i - t + 1) + t); default: return 0 } } }, T.Protocol = { value: null, protocol: function() { var t = "http" , i = document.location.protocol; "https:" == i && (t = "https"), T.Protocol.value = t + "://" } }, T.Protocol.protocol(), T.tk = "tk=" + window.TMAP_AUTHKEY + "&", T.Domain = "com", T.DomainType = 1, T.DomainFun = function() { 1 == T.DomainType ? T.Domain = "gov.cn" : 2 == T.DomainType && (T.Domain = "com") } , T.DomainFun(), T.w = { TMAP_AUTHKEY: window.TMAP_AUTHKEY, E: T.Protocol.value + "api.tianditu." + T.Domain, e: T.Protocol.value + "api.tianditu." + T.Domain + "/v4.0/image", IPSERVER: T.Protocol.value + "map.tianditu.gov.cn/data/getCityName", R: T.Protocol.value + "api.tianditu." + T.Domain + "/apiserver/ajaxproxy?proxyReqUrl=", r: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, T: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, t: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, Y: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, U: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/img_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, u: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cia_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, I: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, i: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, O: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/ter_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, o: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cta_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&" + T.tk }, P: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, p: function() { return T.Protocol.value + "t" + T.q.W(0, 7) + ".tianditu." + T.Domain + "/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&" + T.tk }, A: ["/v4.0/components.js", "/v4.0/service.js", "/v4.0/military.js"], a: ["/v4.0/css/tianditu4.0.css"], TMAP_DEFAULT_MAPTYPES: [] }, window.T_ANCHOR_TOP_LEFT = "topleft", window.T_ANCHOR_TOP_RIGHT = "topright", window.T_ANCHOR_BOTTOM_LEFT = "bottomleft", window.T_ANCHOR_BOTTOM_RIGHT = "bottomright", window.TMAP_NORMAL_MAP = null, window.TMAP_SATELLITE_MAP = null, window.TMAP_HYBRID_MAP = null, window.TMAP_TERRAIN_MAP = null, window.TMAP_TERRAIN_HYBRID_MAP = null, T.S = { extend: function(t) { var i, n, e, o; for (n = 1, e = arguments.length; n < e; n++) { o = arguments[n]; for (i in o) t[i] = o[i] } return t }, s: Object.create || function() { function t() {} return function(i) { return t.prototype = i, new t } }(), D: function(t, i) { var n = Array.prototype.slice; if (t.D) return t.D.apply(t, n.call(arguments, 1)); var e = n.call(arguments, 2); return function() { return t.apply(i, e.length ? e.concat(n.call(arguments)) : arguments) } }, d: function(t) { return t.F = t.F || ++T.S.f, t.F }, f: 0, G: function(t, i, n) { var e, o, s, r; return r = function() { e = !1, o && (s.apply(n, o), o = !1) } , s = function() { e ? o = arguments : (t.apply(n, arguments), setTimeout(r, i), e = !0) } }, g: function(t, i, n) { var e = i[1] , o = i[0] , s = e - o; return t === e && n ? t : ((t - o) % s + s) % s + o }, H: function() { return !1 }, h: function(t, i) { var n = Math.pow(10, i || 5); return Math.round(t * n) / n }, J: function(t) { return t.J ? t.J() : t.replace(/^\s+|\s+$/g, "") }, j: function(t) { return T.S.J(t).split(/\s+/) }, setOptions: function(t, i) { t.hasOwnProperty("options") || (t.options = t.options ? T.S.s(t.options) : {}); for (var n in i) t.options[n] = i[n]; return t.options }, K: function(t, i, n) { var e = []; for (var o in t) e.push(encodeURIComponent(n ? o.toUpperCase() : o) + "=" + encodeURIComponent(t[o])); return (i && i.indexOf("?") !== -1 ? "&" : "?") + e.join("&") }, k: function(t, i) { return t.replace(T.S.L, function(t, n) { var e = i[n]; return void 0 === e || "function" == typeof e && (e = e(i)), e }) }, L: /\{ *([\w_\-]+) *\}/g, l: Array.l || function(t) { return "[object Array]" === Object.prototype.toString.call(t) } , indexOf: function(t, i) { for (var n = 0; n < t.length; n++) if (t[n] === i) return n; return -1 }, Z: "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" }, function() { function t(t) { return window["webkit" + t] || window["moz" + t] || window["ms" + t] } function i(t) { var i = +new Date , e = Math.max(0, 16 - (i - n)); return n = i + e, window.setTimeout(t, e) } var n = 0 , e = window.requestAnimationFrame || t("RequestAnimationFrame") || i , o = window.cancelAnimationFrame || t("CancelAnimationFrame") || t("CancelRequestAnimationFrame") || function(t) { window.clearTimeout(t) } ; T.S.C = function(t, n, o) { return o && e === i ? void t.call(n) : e.call(window, T.D(t, n)) } , T.S.V = function(t) { t && o.call(window, t) } }(), T.extend = T.S.extend, T.D = T.S.D, T.d = T.S.d, T.setOptions = T.S.setOptions, T.c = function() {} , T.c.extend = function(t) { var i = function() { this.initialize && this.initialize.apply(this, arguments), this.B() } , n = i.__super__ = this.prototype , e = T.S.s(n); e.constructor = i, i.prototype = e; for (var o in this) this.hasOwnProperty(o) && "prototype" !== o && (i[o] = this[o]); return t.v && (T.extend(i, t.v), delete t.v), t.includes && (T.S.extend.apply(null, [e].concat(t.includes)), delete t.includes), e.options && (t.options = T.S.extend(T.S.s(e.options), t.options)), T.extend(e, t), e.N = [], e.B = function() { if (!this.b) { n.B && n.B.call(this), this.b = !0; for (var t = 0, i = e.N.length; t < i; t++) e.N[t].call(this) } } , i } , T.c.M = function(t) { return T.extend(this.prototype, t), this } , T.c.n = function(t) { return T.extend(this.prototype.options, t), this } , T.c._ = function(t) { var i = Array.prototype.slice.call(arguments, 1) , n = "function" == typeof t ? t : function() { this[t].apply(this, i) } ; return this.prototype.N = this.prototype.N || [], this.prototype.N.push(n), this } , T.m = T.c.extend({ on: function(t, i, n) { if ("object" == typeof t) for (var e in t) this.QQ(e, t[e], i); else { t = T.S.j(t); for (var o = 0, s = t.length; o < s; o++) this.QQ(t[o], i, n) } return this }, off: function(t, i, n) { if (t) if ("object" == typeof t) for (var e in t) this.WQ(e, t[e], i); else { t = T.S.j(t); for (var o = 0, s = t.length; o < s; o++) this.WQ(t[o], i, n) } else delete this.qQ; return this }, QQ: function(t, i, n) { var e = this.qQ = this.qQ || {} , o = n && n !== this && T.d(n); if (o) { var s = t + "_idx" , r = t + "_len" , h = e[s] = e[s] || {} , a = T.d(i) + "_" + o; h[a] || (h[a] = { fn: i, ctx: n }, e[r] = (e[r] || 0) + 1) } else e[t] = e[t] || [], e[t].push({ fn: i }) }, WQ: function(t, i, n) { var e, o, s, r, h = this.qQ, a = t + "_idx", u = t + "_len"; if (h) { if (!i) { o = h[a]; for (s in o) o[s].fn = T.S.H; for (o = h[t] || [], s = 0, r = o.length; s < r; s++) o[s].fn = T.S.H; return delete h[t], delete h[a], void delete h[u] } var c, l = n && n !== this && T.d(n); if (l) c = T.d(i) + "_" + l, o = h[a], o && o[c] && (e = o[c], delete o[c], h[u]--); else if (o = h[t]) { for (s = 0, r = o.length; s < r; s++) if (o[s].fn === i) { e = o[s], o.splice(s, 1); break } 0 === o.length && delete h[t] } e && (e.fn = T.S.H) } }, wQ: function(t, i, n) { if (!this.EQ(t, n)) return this; var e = T.S.extend({}, i, { type: t, target: this }) , o = this.qQ; if (o) { var s, r, h, a, u = o[t + "_idx"]; if (o[t]) for (h = o[t].slice(), s = 0, r = h.length; s < r; s++) h[s].fn.call(this, e); for (a in u) u[a].fn.call(u[a].ctx, e) } return n && this.eQ(e), this }, trigger: function(t, i, n) { return this.wQ(t, i, n), this }, EQ: function(t, i) { var n = this.qQ; if (n && (n[t] || n[t + "_len"])) return !0; if (i) for (var e in this.RQ) if (this.RQ[e].EQ(t, i)) return !0; return !1 }, rQ: function(t, i, n) { if ("object" == typeof t) { for (var e in t) this.rQ(e, t[e], i); return this } var o = T.D(function() { this.off(t, i, n).off(t, o, n) }, this); return this.on(t, i, n).on(t, o, n) }, TQ: function(t) { return this.RQ = this.RQ || {}, this.RQ[T.d(t)] = t, this }, tQ: function(t) { return this.RQ && delete this.RQ[T.d(t)], this }, eQ: function(t) { for (var i in this.RQ) this.RQ[i].wQ(t.type, T.extend({ layer: t.target }, t), !0) } }); var pro = T.m.prototype; pro.addEventListener = pro.on, pro.removeEventListener = pro.YQ = pro.off, pro.UQ = pro.rQ, pro.uQ = pro.trigger, pro.IQ = pro.EQ, T.iQ = { OQ: pro }, function() { var t = navigator.userAgent.toLowerCase() , i = document.documentElement , n = "ActiveXObject"in window , e = "Microsoft Internet Explorer" == navigator.appName && "MSIE8.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]","g"), "") , o = "Microsoft Internet Explorer" == navigator.appName && "MSIE7.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]","g"), "") , s = "Microsoft Internet Explorer" == navigator.appName && "MSIE6.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]","g"), "") , r = t.indexOf("webkit") !== -1 , h = t.indexOf("phantom") !== -1 , a = t.search("android [23]") !== -1 , u = t.indexOf("chrome") !== -1 , c = t.indexOf("gecko") !== -1 && !r && !window.opera && !n , l = 0 === navigator.platform.indexOf("Win") , f = "undefined" != typeof orientation || t.indexOf("mobile") !== -1 , d = !window.PointerEvent && window.MSPointerEvent , p = window.PointerEvent || d , m = n && "transition"in i.style , v = "WebKitCSSMatrix"in window && "m11"in new window.WebKitCSSMatrix && !a , w = "MozPerspective"in i.style , y = "OTransition"in i.style , g = !window.L_NO_TOUCH && (p || "ontouchstart"in window || window.DocumentTouch && document instanceof window.DocumentTouch); T.oQ = { ie: n, ie8: e, ie7: o, ie6: s, ielt9: n && !document.addEventListener, edge: "msLaunchUri"in navigator && !("documentMode"in document), webkit: r, gecko: c, android: t.indexOf("android") !== -1, android23: a, chrome: u, safari: !u && t.indexOf("safari") !== -1, win: l, ie3d: m, webkit3d: v, gecko3d: w, opera12: y, any3d: !window.L_DISABLE_3D && (m || v || w) && !y && !h, mobile: f, mobileWebkit: f && r, mobileWebkit3d: f && v, mobileOpera: f && window.opera, mobileGecko: f && c, touch: !!g, msPointer: !!d, pointer: !!p, retina: (window.PQ || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1 } }(), T.Point = function(t, i, n) { this.x = n ? Math.round(t) : t, this.y = n ? Math.round(i) : i } , T.Point.prototype = { pQ: function() { return new T.Point(this.x,this.y) }, AQ: function(t) { return this.pQ().aQ(T.SQ(t)) }, aQ: function(t) { return this.x += t.x, this.y += t.y, this }, sQ: function(t) { return this.pQ().DQ(T.SQ(t)) }, DQ: function(t) { return this.x -= t.x, this.y -= t.y, this }, dQ: function(t) { return this.pQ().FQ(t) }, FQ: function(t) { return this.x /= t, this.y /= t, this }, fQ: function(t) { return this.pQ().GQ(t) }, GQ: function(t) { return this.x *= t, this.y *= t, this }, gQ: function(t) { return new T.Point(this.x * t.x,this.y * t.y) }, HQ: function(t) { return new T.Point(this.x / t.x,this.y / t.y) }, hQ: function() { return this.pQ().JQ() }, JQ: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this }, jQ: function() { return this.pQ().KQ() }, KQ: function() { return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this }, kQ: function() { return this.pQ().LQ() }, LQ: function() { return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this }, distanceTo: function(t) { t = T.SQ(t); var i = t.x - this.x , n = t.y - this.y; return Math.sqrt(i * i + n * n) }, equals: function(t) { return t = T.SQ(t), t.x === this.x && t.y === this.y }, contains: function(t) { return t = T.SQ(t), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y) }, lQ: function() { return "Point(" + T.S.h(this.x) + ", " + T.S.h(this.y) + ")" } }, T.SQ = function(t, i, n) { return t instanceof T.Point ? t : T.S.l(t) ? new T.Point(t[0],t[1]) : void 0 === t || null === t ? t : "object" == typeof t && "x"in t && "y"in t ? new T.Point(t.x,t.y) : new T.Point(t,i,n) } , T.ZQ = function(t, i) { if (t) for (var n = i ? [t, i] : t, e = 0, o = n.length; e < o; e++) this.extend(n[e]) } , T.ZQ.prototype = { extend: function(t) { return t = T.SQ(t), this.min || this.max ? (this.min.x = Math.min(t.x, this.min.x), this.max.x = Math.max(t.x, this.max.x), this.min.y = Math.min(t.y, this.min.y), this.max.y = Math.max(t.y, this.max.y)) : (this.min = t.pQ(), this.max = t.pQ()), this }, getCenter: function(t) { return new T.Point((this.min.x + this.max.x) / 2,(this.min.y + this.max.y) / 2,t) }, CQ: function() { return new T.Point(this.min.x,this.max.y) }, VQ: function() { return new T.Point(this.max.x,this.min.y) }, getSize: function() { return this.max.sQ(this.min) }, contains: function(t) { var i, n; return t = "number" == typeof t[0] || t instanceof T.Point ? T.SQ(t) : T.cQ(t), t instanceof T.ZQ ? (i = t.min, n = t.max) : i = n = t, i.x >= this.min.x && n.x <= this.max.x && i.y >= this.min.y && n.y <= this.max.y }, intersects: function(t) { t = T.cQ(t); var i = this.min , n = this.max , e = t.min , o = t.max , s = o.x >= i.x && e.x <= n.x , r = o.y >= i.y && e.y <= n.y; return s && r }, BQ: function(t) { t = T.cQ(t); var i = this.min , n = this.max , e = t.min , o = t.max , s = o.x > i.x && e.x < n.x , r = o.y > i.y && e.y < n.y; return s && r }, vQ: function() { return !(!this.min || !this.max) } }, T.cQ = function(t, i) { return !t || t instanceof T.ZQ ? t : new T.ZQ(t,i) } , T.NQ = function(t, i, n, e) { this._a = t, this._b = i, this._c = n, this._d = e } , T.NQ.prototype = { bQ: function(t, i) { return this.MQ(t.pQ(), i) }, MQ: function(t, i) { return i = i || 1, t.x = i * (this._a * t.x + this._b), t.y = i * (this._c * t.y + this._d), t }, nQ: function(t, i) { return i = i || 1, new T.Point((t.x / i - this._b) / this._a,(t.y / i - this._d) / this._c) } }, T._Q = { mQ: function(t) { return "string" == typeof t ? document.getElementById(t) : t }, getStyle: function(t, i) { var n = t.style[i] || t.currentStyle && t.currentStyle[i]; if ((!n || "auto" === n) && document.defaultView) { var e = document.defaultView.getComputedStyle(t, null); n = e ? e[i] : null } return "auto" === n ? null : n }, s: function(t, i, n) { var e = document.createElement(t); return e.className = i || "", n && n.appendChild(e), e }, Qq: function(t) { var i = t.parentNode; i && i.removeChild(t) }, qq: function(t) { for (; t.firstChild; ) t.removeChild(t.firstChild) }, Wq: function(t) { t.parentNode.appendChild(t) }, wq: function(t) { var i = t.parentNode; i.insertBefore(t, i.firstChild) }, Eq: function(t, i) { if (void 0 !== t.classList) return t.classList.contains(i); var n = T._Q.eq(t); return n.length > 0 && new RegExp("(^|\\s)" + i + "(\\s|$)").test(n) }, Rq: function(t, i) { if (void 0 !== t.classList) for (var n = T.S.j(i), e = 0, o = n.length; e < o; e++) t.classList.add(n[e]); else if (!T._Q.Eq(t, i)) { var s = T._Q.eq(t); T._Q.rq(t, (s ? s + " " : "") + i) } }, Tq: function(t, i) { void 0 !== t.classList ? t.classList.remove(i) : T._Q.rq(t, T.S.J((" " + T._Q.eq(t) + " ").replace(" " + i + " ", " "))) }, rq: function(t, i) { void 0 === t.className.baseVal ? t.className = i : t.className.baseVal = i }, eq: function(t) { return void 0 === t.className.baseVal ? t.className : t.className.baseVal }, setOpacity: function(t, i) { "opacity"in t.style ? t.style.opacity = i : "filter"in t.style && T._Q.tq(t, i) }, tq: function(t, i) { var n = !1 , e = "DXImageTransform.Microsoft.Alpha"; try { n = t.filters.item(e) } catch (AO) { if (1 === i) return } i = Math.round(100 * i), n ? (n.Enabled = 100 !== i, n.Opacity = i) : t.style.filter += " progid:" + e + "(opacity=" + i + ")" }, Yq: function(t) { for (var i = document.documentElement.style, n = 0; n < t.length; n++) if (t[n]in i) return t[n]; return !1 }, Uq: function(t, i, n) { var e = i || new T.Point(0,0); t.style[T._Q.uq] = (T.oQ.ie3d ? "translate(" + e.x + "px," + e.y + "px)" : "translate3d(" + e.x + "px," + e.y + "px,0)") + (n ? " scale(" + n + ")" : "") }, setPosition: function(t, i) { t._tdt_pos = i, T.oQ.any3d ? T._Q.Uq(t, i) : (t.style.left = i.x + "px", t.style.top = i.y + "px") }, getPosition: function(t) { return t._tdt_pos || new T.Point(0,0) } }, function() { T._Q.uq = T._Q.Yq(["bQ", "WebkitTransform", "OTransform", "MozTransform", "msTransform"]); var t = T._Q.Iq = T._Q.Yq(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]); if (T._Q.iq = "webkitTransition" === t || "OTransition" === t ? t + "End" : "transitionend", "onselectstart"in document) T._Q.Oq = function() { T.oq.on(window, "selectstart", T.oq.preventDefault) } , T._Q.Pq = function() { T.oq.off(window, "selectstart", T.oq.preventDefault) } ; else { var i = T._Q.Yq(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]); T._Q.Oq = function() { if (i) { var t = document.documentElement.style; this.pq = t[i], t[i] = "none" } } , T._Q.Pq = function() { i && (document.documentElement.style[i] = this.pq, delete this.pq) } } T._Q.Aq = function() { T.oq.on(window, "dragstart", T.oq.preventDefault) } , T._Q.aq = function() { T.oq.off(window, "dragstart", T.oq.preventDefault) } , T._Q.Sq = function(t) { for (; t.tabIndex === -1; ) t = t.parentNode; t && t.style && (T._Q.sq(), this.Dq = t, this._outlineStyle = t.style.outline, t.style.outline = "none", T.oq.on(window, "keydown", T._Q.sq, this)) } , T._Q.sq = function() { this.Dq && (this.Dq.style.outline = this._outlineStyle, delete this.Dq, delete this._outlineStyle, T.oq.off(window, "keydown", T._Q.sq, this)) } }(), T.dq = function(t, i, n) { isNaN(t) || isNaN(i), this.lat = +parseFloat(t).toFixed(5), this.lng = +parseFloat(i).toFixed(5), void 0 !== n && (this.Fq = +n) } , T.dq.prototype = { equals: function(t, i) { if (!t) return !1; t = T.fq(t); var n = Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)); return n <= (void 0 === i ? 1e-9 : i) }, lQ: function(t) { return "LngLat(" + T.S.h(this.lng, t) + ", " + T.S.h(this.lat, t) + ")" }, distanceTo: function(t) { return T.gq.Gq.distance(this, T.fq(t)) }, Hq: function() { return T.gq.Gq.hq(this) }, Jq: function(t) { var i = 180 * t / 40075017 , n = i / Math.cos(Math.PI / 180 * this.lat); return T.jq([this.lat - i, this.lng - n], [this.lat + i, this.lng + n]) }, pQ: function() { return new T.dq(this.lat,this.lng,this.Fq) }, getLng: function() { return this.lng }, getLat: function() { return this.lat } }, T.fq = function(t, i, n) { return t instanceof T.dq ? t : T.S.l(t) && "object" != typeof t[0] ? 3 === t.length ? new T.dq(t[0],t[1],t[2]) : 2 === t.length ? new T.dq(t[0],t[1]) : null : void 0 === t || null === t ? t : "object" == typeof t && "lat"in t ? new T.dq(t.lat,"lng"in t ? t.lng : t.lon,t.Fq) : void 0 === i ? null : new T.dq(t,i,n) } , T.LngLat = function(t, i, n) { return new T.dq(i,t,n) } , T.Kq = function(t, i) { if (t) for (var n = i ? [t, i] : t, e = 0, o = n.length; e < o; e++) this.extend(n[e]) } , T.Kq.prototype = { extend: function(t) { var i, n, e = this.kq, o = this.Lq; if (t instanceof T.dq) i = t, n = t; else { if (!(t instanceof T.Kq)) return t ? this.extend(T.fq(t) || T.jq(t)) : this; if (i = t.kq, n = t.Lq, !i || !n) return this } return e || o ? (e.lat = Math.min(i.lat, e.lat), e.lng = Math.min(i.lng, e.lng), o.lat = Math.max(n.lat, o.lat), o.lng = Math.max(n.lng, o.lng)) : (this.kq = new T.dq(i.lat,i.lng), this.Lq = new T.dq(n.lat,n.lng)), this }, lq: function(t) { var i = this.kq , n = this.Lq , e = Math.abs(i.lat - n.lat) * t , o = Math.abs(i.lng - n.lng) * t; return new T.Kq(new T.dq(i.lat - e,i.lng - o),new T.dq(n.lat + e,n.lng + o)) }, getCenter: function() { return new T.dq((this.kq.lat + this.Lq.lat) / 2,(this.kq.lng + this.Lq.lng) / 2) }, getSouthWest: function() { return this.kq }, getNorthEast: function() { return this.Lq }, Zq: function() { return new T.dq(this.Cq(),this.Vq()) }, cq: function() { return new T.dq(this.Bq(),this.vq()) }, Vq: function() { return this.kq.lng }, Bq: function() { return this.kq.lat }, vq: function() { return this.Lq.lng }, Cq: function() { return this.Lq.lat }, contains: function(t) { t = "number" == typeof t[0] || t instanceof T.dq ? T.fq(t) : T.jq(t); var i, n, e = this.kq, o = this.Lq; return t instanceof T.Kq ? (i = t.getSouthWest(), n = t.getNorthEast()) : i = n = t, i.lat >= e.lat && n.lat <= o.lat && i.lng >= e.lng && n.lng <= o.lng }, intersects: function(t) { t = T.jq(t); var i = this.kq , n = this.Lq , e = t.getSouthWest() , o = t.getNorthEast() , s = o.lat >= i.lat && e.lat <= n.lat , r = o.lng >= i.lng && e.lng <= n.lng; return s && r }, BQ: function(t) { t = T.jq(t); var i = this.kq , n = this.Lq , e = t.getSouthWest() , o = t.getNorthEast() , s = o.lat > i.lat && e.lat < n.lat , r = o.lng > i.lng && e.lng < n.lng; return s && r }, Nq: function() { return [this.Vq(), this.Bq(), this.vq(), this.Cq()].join(",") }, equals: function(t) { return !!t && (t = T.jq(t), this.kq.equals(t.getSouthWest()) && this.Lq.equals(t.getNorthEast())) }, vQ: function() { return !(!this.kq || !this.Lq) } }, T.jq = function(t, i) { return t instanceof T.Kq ? t : new T.Kq(t,i) } , T.LngLatBounds = function(t, i) { return t instanceof T.Kq ? t : new T.Kq(t,i) } , T.bq = {}, T.bq.Mq = { nq: function(t) { return new T.Point(t.lng,t.lat) }, _q: function(t) { return new T.dq(t.y,t.x) }, bounds: T.cQ([-180, -90], [180, 90]) }, T.bq.mq = { R: 6378137, QW: 85.0511287798, nq: function(t) { var i = Math.PI / 180 , n = this.QW , e = Math.max(Math.min(n, t.lat), -n) , o = Math.sin(e * i); return new T.Point(this.R * t.lng * i,this.R * Math.log((1 + o) / (1 - o)) / 2) }, _q: function(t) { var i = 180 / Math.PI; return new T.dq((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * i,t.x * i / this.R) }, bounds: function() { var t = 6378137 * Math.PI; return T.cQ([-t, -t], [t, t]) }() }, T.gq = { qW: function(t, i) { var n = this.projection.nq(t) , e = this.scale(i); return this.WW.MQ(n, e) }, wW: function(t, i) { var n = this.scale(i) , e = this.WW.nQ(t, n); return this.projection._q(e) }, nq: function(t) { return this.projection.nq(t) }, _q: function(t) { return this.projection._q(t) }, scale: function(t) { return 256 * Math.pow(2, t - T.gq.EW) }, EW: 0, zoom: function(t) { return Math.log(t / 256) / Math.LN2 }, eW: function(t) { if (this.RW) return null; var i = this.projection.bounds , n = this.scale(t) , e = this.WW.bQ(i.min, n) , o = this.WW.bQ(i.max, n); return T.cQ(e, o) }, RW: !1, hq: function(t) { var i = this.rW ? T.S.g(t.lng, this.rW, !0) : t.lng , n = this.wrapLat ? T.S.g(t.lat, this.wrapLat, !0) : t.lat , e = t.Fq; return T.fq(n, i, e) } }, T.gq.TW = T.extend({}, T.gq, { projection: T.bq.Mq, WW: new T.NQ(1,0,-1,0), scale: function(t) { return Math.pow(2, t) }, zoom: function(t) { return Math.log(t) / Math.LN2 }, distance: function(t, i) { var n = i.lng - t.lng , e = i.lat - t.lat; return Math.sqrt(n * n + e * e) }, RW: !0 }), T.gq.Gq = T.extend({}, T.gq, { rW: [-180, 180], R: 6371e3, distance: function(t, i) { var n = Math.PI / 180 , e = t.lat * n , o = i.lat * n , s = Math.sin(e) * Math.sin(o) + Math.cos(e) * Math.cos(o) * Math.cos((i.lng - t.lng) * n); return this.R * Math.acos(Math.min(s, 1)) } }), T.gq.tW = T.extend({}, T.gq.Gq, { code: "YW", projection: T.bq.mq, WW: function() { var t = .5 / (Math.PI * T.bq.mq.R); return new T.NQ(t,.5,-t,.5) }() }), T.gq.UW = T.extend({}, T.gq.tW, { code: "EPSG:900913" }), T.gq.uW = T.extend({}, T.gq.Gq, { code: "EPSG:4326", projection: T.bq.Mq, WW: new T.NQ(1 / 180,1,-1 / 180,.5) }), T.Map = T.m.extend({ options: { IW: T.gq.UW, center: void 0, zoom: void 0, minZoom: void 0, maxZoom: void 0, layers: [], maxBounds: void 0, iW: void 0, OW: !0, oW: !0, PW: !0, pW: 8388608, AW: 1, aW: 1, datasourcesControl: !1 }, initialize: function(t, i) { i = T.setOptions(this, i), this.SW = "EPSG:900913", i.projection ? "EPSG:4326" == i.projection ? (i.IW = T.gq.uW, this.SW = "EPSG:4326", T.gq.EW = 1) : (i.IW = T.gq.UW, this.SW = "EPSG:900913", i.projection = this.SW, T.gq.EW = 0) : i.projection = this.SW, this.sW(t), this.DW(), this.dW = T.D(this.dW, this), this.FW(), i.maxBounds && this.setMaxBounds(i.maxBounds), void 0 !== i.zoom && (this.fW = this.GW(i.zoom)), i.center && void 0 !== i.zoom && this.gW(T.fq(i.center), i.zoom, { reset: !0 }), this.HW = [], this.hW = {}, this.JW = [], this.jW = [], this.KW = {}, this.kW = !0, this.initLayers = [], this.B(), this.defaultMapType = null, this.LW(this), this.lW(this.options.layers) }, getCode: function() { return this.SW }, gW: function(t, i) { return i = void 0 === i ? this.getZoom() : i, this.ZW(T.fq(t), i), this }, setZoom: function(t, i) { return this.CW ? this.gW(this.getCenter(), t, { zoom: i }) : (this.fW = t, this) }, zoomIn: function(t, i) { return t = t || (T.oQ.any3d ? this.options.aW : 1), this.setZoom(this.fW + t, i) }, zoomOut: function(t, i) { return t = t || (T.oQ.any3d ? this.options.aW : 1), this.setZoom(this.fW - t, i) }, VW: function(t, i, n) { var e = this.cW(i) , o = this.getSize().dQ(2) , s = t instanceof T.Point ? t : this.BW(t) , r = s.sQ(o).fQ(1 - 1 / e) , h = this.vW(o.AQ(r)); return this.gW(h, i, { zoom: n }) }, NW: function(t, i) { i = i || {}, t = t.getBounds ? t.getBounds() : T.jq(t); var n = T.SQ(i.bW || i.MW || [0, 0]) , e = T.SQ(i.paddingBottomRight || i.MW || [0, 0]) , o = this.nW(t, !1, n.AQ(e)); o = "number" == typeof i.maxZoom ? Math.min(i.maxZoom, o) : o; var s = e.sQ(n).dQ(2) , r = this.nq(t.getSouthWest(), o) , h = this.nq(t.getNorthEast(), o) , a = this._q(r.AQ(h).dQ(2).AQ(s), o); return { center: a, zoom: o } }, _W: function(t, i) { if (t = T.jq(t), !t.vQ()) throw new Error("Bounds are not valid."); var n = this.NW(t, i); return this.gW(n.center, n.zoom, i) }, mW: function(t) { return this._W([[-90, -180], [90, 180]], t) }, getViewport: function(t) { if (T.S.l(t) && 0 != t.length) { var i = this.Qw(t); return { center: i.getCenter(), zoom: this.nW(i, !1) } } }, setViewport: function(t) { if (T.S.l(t) && 0 != t.length) { var i = this.Qw(t); this.panTo(i.getCenter(), this.nW(i, !1)) } }, Qw: function(t) { for (var i = new T.LngLatBounds(new T.LngLat(0,0)), n = 0, e = t.length; n < e; n++) { var o = T.fq(t[n]); i.extend(o) } return i }, panTo: function(t, i, n) { return i && (this.fW = i), this.centerAndZoom(t, this.fW, { qw: n }) }, panBy: function(t) { return this.wQ("movestart"), this.Ww(T.SQ(t)), this.wQ("move"), this.wQ("moveend") }, setMaxBounds: function(t) { return t = T.jq(t), t.vQ() ? (this.options.maxBounds && this.off("moveend", this.ww), this.options.maxBounds = t, this.CW && this.ww(), this.on("moveend", this.ww)) : (this.options.maxBounds = null, this.off("moveend", this.ww)) }, setMinZoom: function(t) { return this.options.minZoom = t, this.CW && this.getZoom() < this.options.minZoom ? this.setZoom(t) : (this.wQ("minzoom", { minZoom: this.options.minZoom, maxZoom: this.options.maxZoom }), this) }, setMaxZoom: function(t) { return this.options.maxZoom = t, this.CW && this.getZoom() > this.options.maxZoom ? this.setZoom(t) : (this.wQ("maxzoom", { minZoom: this.options.minZoom, maxZoom: this.options.maxZoom }), this) }, Ew: function(t, i) { this.ew = !0; var n = this.getCenter() , e = this.Rw(n, this.fW, T.jq(t)); return n.equals(e) || this.panTo(e, i), this.ew = !1, this }, rw: function(t) { if (!this.CW) return this; t = T.extend({ Tw: !1, qw: !0 }, t === !0 ? { Tw: !0 } : t); var i = this.getSize(); this.kW = !0, this.tw = null; var n = this.getSize() , e = i.dQ(2).hQ() , o = n.dQ(2).hQ() , s = e.sQ(o); return s.x || s.y ? (t.Tw && t.qw ? this.panBy(s) : (t.qw && this.Ww(s), this.wQ("move"), t.Yw ? (clearTimeout(this.Uw), this.Uw = setTimeout(T.D(this.wQ, this, "moveend"), 200)) : this.wQ("moveend")), this.wQ("resize", { oldSize: i, newSize: n })) : this }, checkResize: function() { this.rw() }, uw: function() { return this.setZoom(this.GW(this.fW)), this.options.AW || this.wQ("viewreset"), this.Iw() }, iw: function(t, i) { if (!i) return this; var n = this[t] = new i(this); return this.HW.push(n), this.options[t] && n.enable(), this }, Qq: function() { this.FW(!0); try { delete this.Ow._tdt } catch (AO) { this.Ow._tdt = void 0 } T._Q.Qq(this.ow), this.Pw && this.Pw(), this.pw(), this.CW && this.wQ("unload"); for (var t in this.hW) this.hW[t].Qq(); return this }, Aw: function(t, i) { var n = "tdt-pane" + (t ? " tdt-" + t.replace("Pane", "") + "-pane" : "") , e = T._Q.s("div", n, i || this.ow); return t && (this.aw[t] = e), e }, getCenter: function() { return this.Sw(), this.tw && !this.sw() ? this.tw : this.Dw(this.dw()) }, getZoom: function() { return this.fW }, getBounds: function() { var t = this.Fw() , i = this._q(t.CQ()) , n = this._q(t.VQ()); return new T.Kq(i,n) }, getMinZoom: function() { return void 0 === this.options.minZoom ? this.fw || 0 : this.options.minZoom }, getMaxZoom: function() { return void 0 === this.options.maxZoom ? void 0 === this.Gw ? 1 / 0 : this.Gw : this.options.maxZoom }, nW: function(t, i, n) { t = T.jq(t), n = T.SQ(n || [0, 0]); var e = this.getZoom() || 0 , o = this.getMinZoom() , s = this.getMaxZoom() , r = t.Zq() , h = t.cq() , a = this.getSize().sQ(n) , u = this.nq(h, e).sQ(this.nq(r, e)) , c = T.oQ.any3d ? this.options.AW : 1 , l = Math.min(a.x / u.x, a.y / u.y); return e = this.gw(l, e), c && (e = Math.round(e / (c / 100)) * (c / 100), e = i ? Math.ceil(e / c) * c : Math.floor(e / c) * c), Math.max(o, Math.min(s, e)) }, getSize: function() { return this.Hw && !this.kW || (this.Hw = new T.Point(this.Ow.clientWidth,this.Ow.clientHeight), this.kW = !1), this.Hw.pQ() }, Fw: function(t, i) { var n = this.hw(t, i); return new T.ZQ(n,n.AQ(this.getSize())) }, Jw: function() { return this.Sw(), this.jw }, Kw: function(t) { return this.options.IW.eW(void 0 === t ? this.getZoom() : t) }, getPane: function(t) { return "string" == typeof t ? this.aw[t] : t }, getPanes: function() { return this.aw }, getContainer: function() { return this.Ow }, cW: function(t, i) { var n = this.options.IW; return i = void 0 === i ? this.fW : i, n.scale(t) / n.scale(i) }, gw: function(t, i) { var n = this.options.IW; return i = void 0 === i ? this.fW : i, n.zoom(t * n.scale(i + T.gq.EW)) }, setCrs: function(t) { if (t == this.getCode()) return !1; var i = this.getCenter(); "EPSG:900913" == t ? (this.options.IW = T.gq.UW, this.SW = t, T.gq.EW = 0) : (this.options.IW = T.gq.uW, this.SW = t, T.gq.EW = 1), this.setMapType(this.getMapType()), this.ZW(i, this.getZoom()) }, switchingMaps: function(t) { this.setCrs(t) }, nq: function(t, i) { return i = void 0 === i ? this.fW : i, this.options.IW.qW(T.fq(t), i) }, _q: function(t, i) { return i = void 0 === i ? this.fW : i, this.options.IW.wW(T.SQ(t), i) }, Dw: function(t) { var i = T.SQ(t).AQ(this.Jw()); return this._q(i) }, kw: function(t) { var i = this.nq(T.fq(t)).JQ(); return i.DQ(this.Jw()) }, layerPointToLngLat: function(t) { return this.Dw(t) }, lngLatToLayerPoint: function(t) { return this.kw(t) }, hq: function(t) { return this.options.IW.hq(T.fq(t)) }, distance: function(t, i) { return this.options.IW.distance(T.fq(t), T.fq(i)) }, getDistance: function(t, i) { return this.distance(t, i) }, Lw: function(t) { return T.SQ(t).sQ(this.lw()) }, Zw: function(t) { return T.SQ(t).AQ(this.lw()) }, vW: function(t) { var i = this.Lw(T.SQ(t)); return this.Dw(i) }, BW: function(t) { return this.Zw(this.kw(T.fq(t))) }, containerPointToLngLat: function(t) { return this.vW(t) }, lngLatToContainerPoint: function(t) { return this.BW(t) }, Cw: function(t) { return T.oq.Vw(t, this.Ow) }, cw: function(t) { return this.Lw(this.Cw(t)) }, Bw: function(t) { return this.Dw(this.cw(t)) }, sW: function(t) { var i = this.Ow = T._Q.mQ(t); i && i._tdt, T.oq.addListener(i, "scroll", this.vw, this), i._tdt = !0 }, DW: function() { var t = this.Ow; this.Nw = this.options.OW && T.oQ.any3d, T._Q.Rq(t, "tdt-container" + (T.oQ.touch ? " tdt-touch" : "") + (T.oQ.retina ? " tdt-retina" : "") + (T.oQ.ielt9 ? " tdt-oldie" : "") + (T.oQ.safari ? " tdt-safari" : "") + (this.Nw ? " tdt-fade-anim" : "")); var i = T._Q.getStyle(t, "position"); "absolute" !== i && "relative" !== i && "fixed" !== i && (t.style.position = "relative"), this.bw(), this.Mw && this.Mw() }, bw: function() { var t = this.aw = {}; this.nw = {}, this.ow = this.Aw("mapPane", this.Ow), T._Q.setPosition(this.ow, new T.Point(0,0)), this.Aw("tilePane"), this.Aw("_w"), this.Aw("overlayPane"), this.Aw("markerPane"), this.Aw("infoWindowPane"), this.options.PW || (T._Q.Rq(t.markerPane, "tdt-zoom-hide"), T._Q.Rq(t._w, "tdt-zoom-hide")) }, ZW: function(t, i) { T._Q.setPosition(this.ow, new T.Point(0,0)); var n = !this.CW; this.CW = !0, i = this.GW(i), this.wQ("viewprereset"); var e = this.fW !== i; this.qE(e).QE(t, i).mw(e), this.wQ("viewreset"), n && this.wQ("load") }, qE: function(t) { return t && this.wQ("zoomstart"), this.wQ("movestart") }, QE: function(t, i, n) { void 0 === i && (i = this.fW); var e = this.fW !== i; return this.fW = i, this.tw = t, this.jw = this.WE(t), (e || n && n.pinch) && this.wQ("zoom", n), this.wQ("move", n) }, mw: function(t) { return t && this.wQ("zoomend"), this.wQ("moveend") }, Iw: function() { return T.S.V(this.wE), this.EE && this.EE.uw(), this }, Ww: function(t) { T._Q.setPosition(this.ow, this.lw().sQ(t)) }, eE: function() { return this.getMaxZoom() - this.getMinZoom() }, ww: function() { this.ew || this.Ew(this.options.maxBounds) }, Sw: function() { !this.CW }, FW: function(t) { if (T.oq) { this.RE = {}, this.RE[T.d(this.Ow)] = this; var i = t ? "off" : "on"; T.oq[i](this.Ow, "click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress", this.rE, this), this.options.oW && T.oq[i](window, "resize", this.dW, this), T.oQ.any3d && this.options.pW && this[i]("moveend", this.TE) } }, dW: function() { T.S.V(this.tE), this.tE = T.S.C(function() { this.rw({ Yw: !0 }) }, this) }, vw: function() { this.Ow.scrollTop = 0, this.Ow.scrollLeft = 0 }, TE: function() { var t = this.lw(); Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.pW && this.ZW(this.getCenter(), this.getZoom()) }, YE: function(t, i) { for (var n, e = [], o = "mouseout" === i || "mouseover" === i, s = t.target || t.srcElement, r = !1; s; ) { if (n = this.RE[T.d(s)], n && ("click" === i || "UE" === i) && !t.uE && this.IE(n)) { r = !0; break } if (n && n.EQ(i, !0)) { if (o && !T.oq.iE(s, t)) break; if (e.push(n), o) break } if (s === this.Ow) break; s = s.parentNode } return e.length || r || o || !T.oq.iE(s, t) || (e = [this]), e }, rE: function(t) { if (this.CW && !T.oq.OE(t)) { var i = "keypress" === t.type && 13 === t.keyCode ? "click" : t.type; "mousedown" === i && T._Q.Sq(t.target || t.srcElement), this.oE(t, i) } }, oE: function(t, i, n) { if ("click" === t.type) { var e = T.S.extend({}, t); e.type = "UE", this.oE(e, e.type, n) } if (!t._stopped && (n = (n || []).concat(this.YE(t, i)), n.length)) { var o = n[0]; "contextmenu" === i && o.EQ(i, !0) && T.oq.preventDefault(t); var s = { originalEvent: t }; if ("keypress" !== t.type) { var r = o instanceof T.Marker; s.containerPoint = r ? this.BW(o.PE()) : this.Cw(t), s.layerPoint = this.Lw(s.containerPoint), s.lnglat = r ? o.PE() : this.Dw(s.layerPoint) } for (var h = 0; h < n.length; h++) if (n[h].wQ(i, s, !0), s.originalEvent._stopped || n[h].options.pE && T.S.indexOf(n[h].options.pE, i) !== -1) return } }, IE: function(t) { return t = t.AE && t.AE.aE() ? t : this, t.AE && t.AE.moved() || this.SE && this.SE.moved() }, pw: function() { for (var t = 0, i = this.HW.length; t < i; t++) this.HW[t].disable() }, sE: function(t, i) { return this.CW ? t.call(i || this, { target: this }) : this.on("load", t, i), this }, lw: function() { return T._Q.getPosition(this.ow) || new T.Point(0,0) }, sw: function() { var t = this.lw(); return t && !t.equals([0, 0]) }, hw: function(t, i) { var n = t && void 0 !== i ? this.WE(t, i) : this.Jw(); return n.sQ(this.lw()) }, WE: function(t, i) { var n = this.getSize().FQ(2); return this.nq(t, i).DQ(n).aQ(this.lw()).JQ() }, DE: function(t, i, n) { var e = this.WE(n, i); return this.nq(t, i).DQ(e) }, dw: function() { return this.Lw(this.getSize().FQ(2)) }, dE: function(t) { return this.kw(t).sQ(this.dw()) }, Rw: function(t, i, n) { if (!n) return t; var e = this.nq(t, i) , o = this.getSize().dQ(2) , s = new T.ZQ(e.sQ(o),e.AQ(o)) , r = this.FE(s, n, i); return r.hQ().equals([0, 0]) ? t : this._q(e.AQ(r), i) }, fE: function(t, i) { if (!i) return t; var n = this.Fw() , e = new T.ZQ(n.min.AQ(t),n.max.AQ(t)); return t.AQ(this.FE(e, i)) }, FE: function(t, i, n) { var e = T.cQ(this.nq(i.getNorthEast(), n), this.nq(i.getSouthWest(), n)) , o = e.min.sQ(t.min) , s = e.max.sQ(t.max) , r = this.GE(o.x, -s.x) , h = this.GE(o.y, -s.y); return new T.Point(r,h) }, GE: function(t, i) { return t + i > 0 ? Math.round(t - i) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(i)) }, GW: function(t) { var i = this.getMinZoom() , n = this.getMaxZoom() , e = T.oQ.any3d ? this.options.AW : 1; return e && (t = Math.round(t / e) * e), Math.max(i, Math.min(n, t)) }, enableAutoResize: function() { this.options.oW = !0, T.oq.on(window, "resize", this.dW, this) }, disableAutoResize: function() { this.options.oW = !1, T.oq.off(window, "resize", this.dW, this) }, getOverlays: function() { var t = []; for (var i in this.hW) "undefined" != typeof this.hW[i].options.type && t.push(this.hW[i]); return t }, setStyle: function(t) { t = t || "black", "black" == t ? this.Ow.style.backgroundColor = "#000000" : this.Ow.style.backgroundColor = "#466399", this.defaultMapType.getLayers()[0].on("tileload", function(t) { T._Q.Rq(t.tile, "tdtTileImage") }), this.defaultMapType.getLayers()[1].on("tileload", function(t) { T._Q.Rq(t.tile, "tdtTileImage") }), this.ZW(this.getCenter(), this.getZoom()) }, removeStyle: function() { this.Ow.style.backgroundColor = "", this.defaultMapType.getLayers()[0].off("tileload"), this.defaultMapType.getLayers()[1].off("tileload"), this.ZW(this.getCenter(), this.getZoom()) } }), T.gE = function(t, i) { return new T.Map(t,i) } , T.HE = T.m.extend({ options: { hE: "overlayPane", pE: [] }, addTo: function(t) { return t.addLayer(this), this }, Qq: function() { return this.JE(this.jE || this.KE) }, JE: function(t) { return t && t.removeLayer(this), this }, getPane: function(t) { return this.jE.getPane(t ? this.options[t] || t : this.options.hE) }, kE: function(t) { return this.jE.RE[T.d(t)] = this, this }, LE: function(t) { return delete this.jE.RE[T.d(t)], this }, lE: function(t) { var i = t.target; if (i.hasLayer(this)) { if (this.jE = i, this.ZE = i.ZE, this.CE) { var n = this.CE(); i.on(n, this), this.rQ("remove", function() { i.off(n, this) }, this) } this.onAdd(i), this.VE && this.jE.cE && this.jE.cE.BE(this.VE()), this.wQ("AQ"), i.wQ("layeradd", { layer: this }) } } }), T.Map.M({ addLayer: function(t) { var i = T.d(t); return this.hW[i] ? this : (this.hW[i] = t, "undefined" != typeof this.hW[i].options.type && this.JW.push(this.hW[i]), t.KE = this, t.vE && t.vE(this), this.sE(t.lE, t), this) }, removeLayer: function(t) { var i = T.d(t); return this.hW[i] ? (this.CW && t.onRemove(this), t.VE && this.cE && this.cE.NE(t.VE()), delete this.hW[i], this.CW && (this.wQ("layerremove", { layer: t }), t.wQ("remove")), t.jE = t.KE = null, this) : this }, getLayers: function() { var t = []; for (layer in this.hW) "function" == typeof this.hW[layer].getTileUrl && "tilePane" == this.hW[layer].options.hE && t.push(this.hW[layer]); return t }, clearLayers: function() { for (var t = 0; t < this.jW.length; t++) this.removeOverLay(this.jW[t]); for (var t = this.jW.length - 1; t >= 0; t--) this.jW.splice(t, 1); return this }, addOverLay: function(t) { this.addLayer(t), this.wQ("addoverlay", { addoverlay: t }) }, removeOverLay: function(t) { this.removeLayer(t), this.wQ("removeoverlay", { removeoverlay: t }) }, clearOverLays: function() { for (var t = 0; t < this.JW.length; t++) this.removeOverLay(this.JW[t]); return this.wQ("clearoverlays"), this }, setMapType: function(t) { t && (this.defaultMapType && this.clearMapType(this.defaultMapType), this.addLayer(t), this.defaultMapType = t), this.wQ("maptypechange", { mapType: t }) }, clearMapType: function(t) { t && (this.removeLayer(t), this.defaultMapType = null) }, addMapType: function(t) {}, removeMapType: function(t) {}, getMapType: function() { return this.defaultMapType }, hasLayer: function(t) { return !!t && T.d(t)in this.hW }, bE: function(t, i) { for (var n in this.hW) t.call(i, this.hW[n]); return this }, lW: function(t) { if (t = t ? T.S.l(t) ? t : [t] : [], 0 == t.length) this.defaultMapType = TMAP_NORMAL_MAP, t = [TMAP_NORMAL_MAP]; else for (var i = 0, n = t.length; i < n; i++) if (t[i]instanceof T.MapType) { this.defaultMapType = t[i]; break } for (var i = 0, n = t.length; i < n; i++) this.addLayer(t[i]) }, ME: function(t) { !isNaN(t.options.maxZoom) && isNaN(t.options.minZoom) || (this.KW[T.d(t)] = t, this.nE()) }, _E: function(t) { var i = T.d(t); this.KW[i] && (delete this.KW[i], this.nE()) }, nE: function() { var t = 1 / 0 , i = -(1 / 0) , n = this.eE(); for (var e in this.KW) { var o = this.KW[e].options; t = void 0 === o.minZoom ? t : Math.min(t, o.minZoom), i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom) } this.Gw = i === -(1 / 0) ? void 0 : i, this.fw = t === 1 / 0 ? void 0 : t, n !== this.eE() && this.wQ("zoomlevelschange") } }), T.Overlay = T.HE.extend({ options: { type: 0 }, show: function() { this.getElement().style.display = "block" }, hide: function() { this.getElement().style.display = "none" }, isHidden: function() { return "none" == this.getElement().style.display }, CE: function() { var t = { zoom: this.update, viewreset: this.update }; return t }, update: function() {}, getPane: function(t) { return this.jE.getPane(t ? this.options[t] || t : this.options.hE) }, setOptions: function(t) { T.S.extend(this.options, t) } }), T.ScriptLoader = function() {} , T.ScriptLoader.prototype = { load: function(t, i, n, e) { if (this.objName = "tdt_loadResult", this.win = window, this.charset = i ? i : "utf-8", this.src = t ? t : null, null != this.src) { this.callback = e ? T.ScriptLoader.mE(n, e) : null; var o = this.win; o[this.objName] = null, this.oScript = document.createElement("script"), this.oScript.type = "text/javascript", this.oScript.async = !0, this.oScript.charset = this.charset, this.oScript.src = this.src, this.running = !0; var n = this; this.oScript.onload = this.oScript.onreadystatechange = function() { this.readyState && "loaded" != this.readyState && "complete" !== this.readyState || (n.oScript.onload = n.oScript.onreadystatechange = null, n.Qe()) } , o.document.body.insertBefore(this.oScript, o.document.body.firstChild) } }, Qe: function(t) { var i = this.win; if (i[this.objName]) { var n = i[this.objName]; i[this.objName] = null, this.callback && this.callback(n) } else this.callback && this.callback(""); !document.all && this.oScript && this.oScript.parentNode == i.document.body && (this.oScript.removeAttribute("src"), i.document.body.removeChild(this.oScript), delete this.oScript), this.running = !1 } }, T.ScriptLoader.getObject = function() { var t, i = i ? i : window; i.scriptLoader_obj || (i.scriptLoader_obj = []); for (var n = 0; n < i.scriptLoader_obj.length; n++) if (0 == i.scriptLoader_obj[n].running) { t = i.scriptLoader_obj[n], delete t; break } return t ? (t.running = !0, t) : t = new T.ScriptLoader } , T.ScriptLoader.qe = function(t) { return t && t.ownerDocument && t.ownerDocument.parentWindow ? t.ownerDocument.parentWindow : window } , T.ScriptLoader.We = function(t) { return t || (t = []), t[0] || (t[0] = T.ScriptLoader.qe().event), t[0] && !t[0].target && t[0].srcElement && (t[0].target = t[0].srcElement), t } , T.ScriptLoader.mE = function(t, i) { return function() { i.apply(t, T.ScriptLoader.We(arguments)) } } , T.bq.we = { R: 6378137, Ee: 6356752.314245179, bounds: T.cQ([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]), nq: function(t) { var i = Math.PI / 180 , n = this.R , e = t.lat * i , o = this.Ee / n , s = Math.sqrt(1 - o * o) , r = s * Math.sin(e) , h = Math.tan(Math.PI / 4 - e / 2) / Math.pow((1 - r) / (1 + r), s / 2); return e = -n * Math.log(Math.max(h, 1e-10)), new T.Point(t.lng * i * n,e) }, _q: function(t) { for (var i, n = 180 / Math.PI, e = this.R, o = this.Ee / e, s = Math.sqrt(1 - o * o), r = Math.exp(-t.y / e), h = Math.PI / 2 - 2 * Math.atan(r), a = 0, u = .1; a < 15 && Math.abs(u) > 1e-7; a++) i = s * Math.sin(h), i = Math.pow((1 - i) / (1 + i), s / 2), u = Math.PI / 2 - 2 * Math.atan(r * i) - h, h += u; return new T.dq(h * n,t.x * n / e) } }, T.gq.ee = T.extend({}, T.gq.Gq, { code: "Re", projection: T.bq.we, WW: function() { var t = .5 / (Math.PI * T.bq.we.R); return new T.NQ(t,.5,-t,.5) }() }), T.re = T.HE.extend({ options: { hE: "tilePane", Te: 256, opacity: 1, zIndex: 1, te: T.oQ.mobile, updateWhenZooming: !0, Ye: 200, Ue: null, bounds: null, minZoom: 0, maxZoom: void 0, ue: !1, className: "", keepBuffer: 2 }, initialize: function(t) { t = T.setOptions(this, t) }, onAdd: function() { this.sW(), this.Ie = {}, this.ie = {}, this.ZW(), this.Oe() }, vE: function(t) { t.ME(this) }, onRemove: function(t) { this.oe(), T._Q.Qq(this.Ow), t._E(this), this.Ow = null, this.Pe = null }, pe: function() { return this.jE && (T._Q.Wq(this.Ow), this.Ae(Math.max)), this }, ae: function() { return this.jE && (T._Q.wq(this.Ow), this.Ae(Math.min)), this }, VE: function() { return this.options.Ue }, getContainer: function() { return this.Ow }, setOpacity: function(t) { return this.options.opacity = t, this.Se(), this }, setZIndex: function(t) { return this.options.zIndex = t, this.se(), this }, De: function() { return this.de }, redraw: function() { return this.jE && (this.oe(), this.Oe()), this }, refresh: function() { this.redraw() }, CE: function() { var t = { viewprereset: this.Fe, viewreset: this.ZW, zoom: this.ZW, moveend: this.TE }; return this.options.te || (this.fe || (this.fe = T.S.G(this.TE, this.options.Ye, this)), t.move = this.fe), this.ZE && (t.Ge = this.ge), t }, He: function() { return document.createElement("div") }, he: function() { var t = this.options.Te; return t instanceof T.Point ? t : new T.Point(t,t) }, se: function() { this.Ow && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this.Ow.style.zIndex = this.options.zIndex) }, Ae: function(t) { for (var i, n = this.getPane().children, e = -t(-(1 / 0), 1 / 0), o = 0, s = n.length; o < s; o++) i = n[o].style.zIndex, n[o] !== this.Ow && i && (e = t(e, +i)); isFinite(e) && (this.options.zIndex = e + t(-1, 1), this.se()) }, Se: function() { if (this.jE && !T.oQ.ielt9) { T._Q.setOpacity(this.Ow, this.options.opacity); var t = +new Date , i = !1 , n = !1; for (var e in this.ie) { var o = this.ie[e]; if (o.Je && o.loaded) { var s = Math.min(1, (t - o.loaded) / 200); T._Q.setOpacity(o.el, s), s < 1 ? i = !0 : (o.active && (n = !0), o.active = !0) } } n && !this.je && this.Ke(), i && (T.S.V(this.ke), this.ke = T.S.C(this.Se, this)) } }, sW: function() { this.Ow || (this.Ow = T._Q.s("div", "tdt-layer " + (this.options.className || "")), this.se(), this.options.opacity < 1 && this.Se(), this.getPane().appendChild(this.Ow)) }, Le: function() { var t = this.Pe , i = this.options.maxZoom; if (void 0 !== t) { for (var n in this.Ie) this.Ie[n].el.children.length || n === t ? this.Ie[n].el.style.zIndex = i - Math.abs(t - n) : (T._Q.Qq(this.Ie[n].el), this.le(n), delete this.Ie[n]); var e = this.Ie[t] , o = this.jE; return e || (e = this.Ie[t] = {}, e.el = T._Q.s("div", "tdt-tile-container tdt-zoom-animated", this.Ow), e.el.style.zIndex = i, e.origin = o.nq(o._q(o.Jw()), t).hQ(), e.zoom = t, this.Ze(e, o.getCenter(), o.getZoom()), T.S.H(e.el.offsetWidth)), this.Ce = e, e } }, Ke: function() { if (this.jE) { var t, i, n = this.jE.getZoom(); if (n > this.options.maxZoom || n < this.options.minZoom) return void this.oe(); for (t in this.ie) i = this.ie[t], i.retain = i.Je; for (t in this.ie) if (i = this.ie[t], i.Je && !i.active) { var e = i.coords; this.Ve(e.x, e.y, e.z, e.z - 5) || this.ce(e.x, e.y, e.z, e.z + 2) } for (t in this.ie) this.ie[t].retain || this.Be(t) } }, le: function(t) { for (var i in this.ie) this.ie[i].coords.z === t && this.Be(i) }, oe: function() { for (var t in this.ie) this.Be(t) }, Fe: function() { for (var t in this.Ie) T._Q.Qq(this.Ie[t].el), delete this.Ie[t]; this.oe(), this.Pe = null }, Ve: function(t, i, n, e) { var o = Math.floor(t / 2) , s = Math.floor(i / 2) , r = n - 1 , h = new T.Point(+o,+s); h.z = +r; var a = this.ve(h) , u = this.ie[a]; return u && u.active ? (u.retain = !0, !0) : (u && u.loaded && (u.retain = !0), r > e && this.Ve(o, s, r, e)) }, ce: function(t, i, n, e) { for (var o = 2 * t; o < 2 * t + 2; o++) for (var s = 2 * i; s < 2 * i + 2; s++) { var r = new T.Point(o,s); r.z = n + 1; var h = this.ve(r) , a = this.ie[h]; a && a.active ? a.retain = !0 : (a && a.loaded && (a.retain = !0), n + 1 < e && this.ce(o, s, n + 1, e)) } }, ZW: function(t) { var i = t && (t.pinch || t.Ne); this.be(this.jE.getCenter(), this.jE.getZoom(), i, i) }, ge: function(t) { this.be(t.center, t.zoom, !0, t.noUpdate) }, be: function(t, i, n, e) { var o = Math.round(i); (void 0 !== this.options.maxZoom && o > this.options.maxZoom || void 0 !== this.options.minZoom && o < this.options.minZoom) && (o = void 0); var s = this.options.updateWhenZooming && o !== this.Pe; e && !s || (this.Pe = o, this.Me && this.Me(), this.Le(), this.ne(), void 0 !== o && this.Oe(t), n || this.Ke(), this.je = !!n), this._e(t, i) }, _e: function(t, i) { for (var n in this.Ie) this.Ze(this.Ie[n], t, i) }, Ze: function(t, i, n) { var e = this.jE.cW(n, t.zoom) , o = t.origin.fQ(e).sQ(this.jE.WE(i, n)).hQ(); T.oQ.any3d ? T._Q.Uq(t.el, o, e) : T._Q.setPosition(t.el, o) }, ne: function() { var t = this.jE , i = t.options.IW , n = this.me = this.he() , e = this.Pe , o = this.jE.Kw(this.Pe); o && (this.QR = this.qR(o)), this.WR = i.rW && !this.options.ue && [Math.floor(t.nq([0, i.rW[0]], e).x / n.x), Math.ceil(t.nq([0, i.rW[1]], e).x / n.y)], this.wR = i.wrapLat && !this.options.ue && [Math.floor(t.nq([i.wrapLat[0], 0], e).y / n.x), Math.ceil(t.nq([i.wrapLat[1], 0], e).y / n.y)] }, TE: function() { this.jE && !this.jE.ER && this.Oe() }, eR: function(t) { var i = this.jE , n = i.ER ? Math.max(i.RR, i.getZoom()) : i.getZoom() , e = i.cW(n, this.Pe) , o = i.nq(t, this.Pe).jQ() , s = i.getSize().dQ(2 * e); return new T.ZQ(o.sQ(s),o.AQ(s)) }, Oe: function(t) { var i = this.jE; if (i) { var n = i.getZoom(); if (void 0 === t && (t = i.getCenter()), void 0 !== this.Pe) { var e = this.eR(t) , o = this.qR(e) , s = o.getCenter() , r = [] , h = this.options.keepBuffer , a = new T.ZQ(o.CQ().sQ([h, -h]),o.VQ().AQ([h, -h])); for (var u in this.ie) { var c = this.ie[u].coords; c.z === this.Pe && a.contains(T.SQ(c.x, c.y)) || (this.ie[u].Je = !1) } if (Math.abs(n - this.Pe) > 1) return void this.be(t, n); for (var l = o.min.y; l <= o.max.y; l++) for (var f = o.min.x; f <= o.max.x; f++) { var d = new T.Point(f,l); if (d.z = this.Pe, this.rR(d)) { var p = this.ie[this.ve(d)]; p ? p.Je = !0 : r.push(d) } } if (r.sort(function(t, i) { return t.distanceTo(s) - i.distanceTo(s) }), 0 !== r.length) { this.de || (this.de = !0, this.wQ("loading")); var m = document.createDocumentFragment(); for (f = 0; f < r.length; f++) this.TR(r[f], m); this.Ce.el.appendChild(m) } } } }, rR: function(t) { var i = this.jE.options.IW; if (!i.RW) { var n = this.QR; if (!i.rW && (t.x < n.min.x || t.x > n.max.x) || !i.wrapLat && (t.y < n.min.y || t.y > n.max.y)) return !1 } if (!this.options.bounds) return !0; var e = this.tR(t); return T.jq(this.options.bounds).BQ(e) }, YR: function(t) { return this.tR(this.UR(t)) }, tR: function(t) { var i = this.jE , n = this.he() , e = t.gQ(n) , o = e.AQ(n) , s = i.hq(i._q(e, t.z)) , r = i.hq(i._q(o, t.z)); return new T.Kq(s,r) }, ve: function(t) { return t.x + ":" + t.y + ":" + t.z }, UR: function(t) { var i = t.split(":") , n = new T.Point(+i[0],+i[1]); return n.z = +i[2], n }, Be: function(t) { var i = this.ie[t]; i && (T._Q.Qq(i.el), delete this.ie[t], this.wQ("tileunload", { tile: i.el, coords: this.UR(t) })) }, uR: function(t) { T._Q.Rq(t, "tdt-tile"); var i = this.he(); t.style.width = i.x + "px", t.style.height = i.y + "px", t.onselectstart = T.S.H, t.onmousemove = T.S.H, T.oQ.ielt9 && this.options.opacity < 1 && T._Q.setOpacity(t, this.options.opacity), T.oQ.android && !T.oQ.android23 && (t.style.WebkitBackfaceVisibility = "hidden") }, TR: function(t, i) { var n = this.IR(t) , e = this.ve(t) , o = this.He(this.iR(t), T.D(this.OR, this, t)); this.uR(o), this.He.length < 2 && T.S.C(T.D(this.OR, this, t, null, o)), T._Q.setPosition(o, n), this.ie[e] = { el: o, coords: t, Je: !0 }, i.appendChild(o), this.wQ("tileloadstart", { tile: o, coords: t }) }, OR: function(t, i, n) { if (this.jE) { i && this.wQ("tileerror", { error: i, tile: n, coords: t }); var e = this.ve(t); n = this.ie[e], n && (n.loaded = +new Date, this.jE.Nw ? (T._Q.setOpacity(n.el, 0), T.S.V(this.ke), this.ke = T.S.C(this.Se, this)) : (n.active = !0, this.Ke()), T._Q.Rq(n.el, "tdt-tile-loaded"), this.wQ("tileload", { tile: n.el, coords: t }), this.oR() && (this.de = !1, this.wQ("load"), T.oQ.ielt9 || !this.jE.Nw ? T.S.C(this.Ke, this) : setTimeout(T.D(this.Ke, this), 250))) } }, IR: function(t) { return t.gQ(this.he()).sQ(this.Ce.origin) }, iR: function(t) { var i = new T.Point(this.WR ? T.S.g(t.x, this.WR) : t.x,this.wR ? T.S.g(t.y, this.wR) : t.y); return i.z = t.z, i }, qR: function(t) { var i = this.he(); return new T.ZQ(t.min.HQ(i).jQ(),t.max.HQ(i).kQ().sQ([1, 1])) }, oR: function() { for (var t in this.ie) if (!this.ie[t].loaded) return !1; return !0 } }), T.PR = function(t) { return new T.re(t) } , T.TileLayer = T.re.extend({ options: { minZoom: 0, maxZoom: 18, pR: "abc", errorTileUrl: "", AR: 0, aR: null, SR: !1, sR: !1, DR: !1, dR: !1 }, initialize: function(t, i) { this.FR = "", t && (this.FR = t), i = T.setOptions(this, i), i.DR && T.oQ.retina && i.maxZoom > 0 && (i.Te = Math.floor(i.Te / 2), i.sR ? (i.AR--, i.minZoom++) : (i.AR++, i.maxZoom--), i.minZoom = Math.max(0, i.minZoom)), "string" == typeof i.pR && (i.pR = i.pR.split("")), T.oQ.android || this.on("tileunload", this.fR) }, setUrl: function(t, i) { return this.FR = t, i || this.redraw(), this }, He: function(t, i) { var n = document.createElement("img"); return T.oq.on(n, "load", T.D(this.GR, this, i, n)), T.oq.on(n, "error", T.D(this.gR, this, i, n)), this.options.dR && (n.dR = ""), n.Fq = "", n.src = this.getTileUrl(t), n }, getTileUrl: function(t) { var i = { r: T.oQ.retina ? "@2x" : "", s: this.HR(t), x: t.x, y: t.y, z: this.hR() }; if (this.jE && !this.jE.options.IW.RW) { var n = this.QR.max.y - t.y; this.options.SR && (i.y = n), i["-y"] = n } return this._url_temp = this.FR, T.S.k(this._url_temp, T.extend(i, this.options)) }, GR: function(t, i) { T.oQ.ielt9 ? setTimeout(T.D(t, this, null, i), 0) : t(null, i) }, gR: function(t, i, n) { var e = this.options.errorTileUrl; e && (i.src = e), t(n, i) }, he: function() { var t = this.jE , i = T.re.prototype.he.call(this) , n = this.Pe + this.options.AR , e = this.options.aR; return null !== e && n > e ? i.dQ(t.cW(e, n)).hQ() : i }, fR: function(t) { t.tile.onload = null }, hR: function() { var t = this.options , i = this.Pe; return t.sR && (i = t.maxZoom - i), i += t.AR, null !== t.aR ? Math.min(i, t.aR) : i }, HR: function(t) { var i = Math.abs(t.x + t.y) % this.options.pR.length; return this.options.pR[i] }, Me: function() { var t, i; for (t in this.ie) this.ie[t].coords.z !== this.Pe && (i = this.ie[t].el, i.onload = T.S.H, i.onerror = T.S.H, i.complete || (i.src = T.S.Z, T._Q.Qq(i))) } }), T.JR = function(t, i) { return new T.TileLayer(t,i) } , T.TileLayer.WMS = T.TileLayer.extend({ defaultWmsParams: { service: "WMS", request: "GetMap", version: "1.1.1", layers: "", styles: "", format: "image/jpeg", transparent: !1 }, options: { IW: null, srs: null, jR: !1 }, initialize: function(t, i) { this.FR = t; var n = T.extend({}, this.defaultWmsParams); for (var e in i) e in this.options || (n[e] = i[e]); i = T.setOptions(this, i), this.wmsSrs = "EPSG:900913", i.srs ? "EPSG:4326" == i.srs ? (i.IW = T.gq.uW, this.wmsSrs = "EPSG:4326") : (i.IW = T.gq.UW, i.srs = "EPSG:900913", this.wmsSrs = "EPSG:900913") : i.srs = this.wmsSrs, n.width = n.height = i.Te * (i.DR && T.oQ.retina ? 2 : 1), this.KR = n }, onAdd: function(t) { this.kR = this.options.IW || t.options.IW, this.LR = parseFloat(this.KR.version); var i = this.LR >= 1.3 ? "IW" : "srs"; this.KR[i] = this.kR.code, T.TileLayer.prototype.onAdd.call(this, t) }, getTileUrl: function(t) { var i = this.tR(t) , n = this.kR.nq(i.Zq()) , e = this.kR.nq(i.cq()) , o = (this.LR >= 1.3 && this.kR === T.gq.uW ? [e.y, n.x, n.y, e.x] : [n.x, e.y, e.x, n.y]).join(",") , s = T.TileLayer.prototype.getTileUrl.call(this, t); return s + T.S.K(this.KR, s, this.options.jR) + (this.options.jR ? "&BBOX=" : "&bbox=") + o }, setParams: function(t, i) { return T.extend(this.KR, t), i || this.redraw(), this } }), T.JR.wms = function(t, i) { return new T.TileLayer.WMS(t,i) } , T.TileLayer.TDT = T.TileLayer.extend({}), T.JR.tdt = function(t, i) { return new T.TileLayer.tdt(t,i) } , T.lR = { ZR: "202210251524", CR: function(t, i, n) { if (window.localStorage) { var e, o = localStorage.getItem(t); null == o || 0 == o.length || this.ZR != localStorage.getItem("TDT_version") ? (document.write(''), window.ActiveXObject ? e = new ActiveXObject("Microsoft.XMLHTTP") : window.XMLHttpRequest && (e = new XMLHttpRequest), null != e && (e.open("GET", i), e.send(null), e.onreadystatechange = function() { 4 == e.readyState && 200 == e.status && (o = e.responseText, localStorage.setItem(t, o), localStorage.setItem("TDT_version", T.lR.ZR), null != n && n()) } )) : (T.lR.VR(o), null != n && n()) } else T.lR.cR(i) }, BR: function(t, i) { if (T.oQ.ie8) return T.lR.vR(i), !1; if (window.localStorage) { var n, e = localStorage.getItem(t); null == e || 0 == e.length || this.ZR != localStorage.getItem("TDT_version") ? (window.ActiveXObject ? n = new ActiveXObject("Microsoft.XMLHTTP") : window.XMLHttpRequest && (n = new XMLHttpRequest), null != n && (n.open("GET", i), n.send(null), n.onreadystatechange = function() { 4 == n.readyState && 200 == n.status && (e = n.responseText, localStorage.setItem(t, e), localStorage.setItem("TDT_version", T.lR.ZR), e = null == e ? "" : e, T.lR.NR(e)) } )) : T.lR.NR(e) } else T.lR.vR(i) }, VR: function(t) { var i = document.getElementsByTagName("HEAD").item(0) , n = document.createElement("script"); n.type = "text/javascript", n.text = t, i.appendChild(n) }, NR: function(t) { var i = document.getElementsByTagName("HEAD").item(0) , n = document.createElement("style"); n.type = "text/css", n.styleSheet ? n.styleSheet.cssText = t : n.innerHTML = t, i.appendChild(n) }, cR: function(t) { var i = document.getElementsByTagName("HEAD").item(0) , n = document.createElement("script"); n.type = "text/javascript", n.src = t, i.appendChild(n) }, vR: function(t) { var i = document.getElementsByTagName("HEAD").item(0) , n = document.createElement("link"); n.type = "text/css", n.rel = "stylesheet", n.href = t, i.appendChild(n) }, bR: function(t, i) { var n = document.createElement("script"); i && (n.onload = n.onreadystatechange = function() { this.readyState && "loaded" != this.readyState && "complete" !== this.readyState || (n.onload = n.onreadystatechange = null, i()) } ); var e = document.getElementsByTagName("head")[0]; n.type = "text/javascript", n.src = t, e.appendChild(n) }, onLoadJsCallBack: function(t) { var i = T.ScriptLoader.getObject(); i.load(t, "UTF-8", this, function() { i = null, delete i }) }, MR: function(t, i) { if (T.oQ.ie8) return T.lR.vR(i), !1; if (window.localStorage) { var n = localStorage.getItem(t); null == n || 0 == n.length || this.ZR != localStorage.getItem("TDT_version") ? (T.lR.vR(i), i.indexOf("tianditu4.0") != -1 && (i = T.w.E + "/api?v=4.0&name=tianditu4.0"), T.lR.bR(i, function() { T.ObjectData && (n = T.ObjectData), localStorage.setItem(t, n), localStorage.setItem("TDT_version", T.lR.ZR), T.ObjectData = null })) : T.lR.NR(n) } }, nR: function(t, i) { if (T.oQ.ie8) return document.write(''), !1; if (window.localStorage) { var n = localStorage.getItem(t); null == n || 0 == n.length || this.ZR != localStorage.getItem("TDT_version") ? (T.lR.cR(i), i.indexOf("components") != -1 && (i = T.w.E + "/api?v=4.0&name=components&tk=" + T.w.TMAP_AUTHKEY), i.indexOf("service") != -1 && (i = T.w.E + "/api?v=4.0&name=service&tk=" + T.w.TMAP_AUTHKEY), i.indexOf("military") != -1 && (i = T.w.E + "/api?v=4.0&name=military&tk=" + T.w.TMAP_AUTHKEY), T.lR.bR(i, function() { T.ObjectData && (n = T.ObjectData), localStorage.setItem(t, n), localStorage.setItem("TDT_version", T.lR.ZR), T.ObjectData = null })) : T.lR.VR(n) } } }, T.qv = function(t) { if (t && 0 !== t.code) { T = {}; var i = "天地图密钥错误,可能是因为您提供的Key不是有效的天地图开放平台Key,或此Key未对本应用授予JavaScriptAPI权限。您可以访问如下网址了解如何获得有效的Key:http://console.tianditu.com/api/key"; alert(i) } } , T._R = T.HE.extend({ options: { opacity: 1, Fq: "", mR: !1, Ue: null, dR: !1 }, initialize: function(t, i, n) { this.FR = t, this.Qr = T.jq(i), T.setOptions(this, n) }, onAdd: function() { this.qr || (this.Wr(), this.options.opacity < 1 && this.Se()), this.options.mR && (T._Q.Rq(this.qr, "tdt-interactive"), this.kE(this.qr)), this.getPane().appendChild(this.qr), this.wr() }, onRemove: function() { T._Q.Qq(this.qr), this.options.mR && this.LE(this.qr) }, setOpacity: function(t) { return this.options.opacity = t, this.qr && this.Se(), this }, setStyle: function(t) { return t.opacity && this.setOpacity(t.opacity), this }, pe: function() { return this.jE && T._Q.Wq(this.qr), this }, ae: function() { return this.jE && T._Q.wq(this.qr), this }, setUrl: function(t) { return this.FR = t, this.qr && (this.qr.src = t), this }, setBounds: function(t) { return this.Qr = t, this.jE && this.wr(), this }, VE: function() { return this.options.Ue }, CE: function() { var t = { zoom: this.wr, viewreset: this.wr }; return this.ZE && (t.Ge = this.ge), t }, getBounds: function() { return this.Qr }, getElement: function() { return this.qr }, Wr: function() { var t = this.qr = T._Q.s("img", "tdt-image-layer " + (this.ZE ? "tdt-zoom-animated" : "")); t.onselectstart = T.S.H, t.onmousemove = T.S.H, t.onload = T.D(this.wQ, this, "load"), this.options.dR && (t.dR = ""), t.src = this.FR, t.Fq = this.options.Fq }, ge: function(t) { var i = this.jE.cW(t.zoom) , n = this.jE.DE(this.Qr.Zq(), t.zoom, t.center); T._Q.Uq(this.qr, n, i) }, wr: function() { var t = this.qr , i = new T.ZQ(this.jE.kw(this.Qr.Zq()),this.jE.kw(this.Qr.cq())) , n = i.getSize(); T._Q.setPosition(t, i.min), t.style.width = n.x + "px", t.style.height = n.y + "px" }, Se: function() { T._Q.setOpacity(this.qr, this.options.opacity) } }), T.Er = function(t, i, n) { return new T._R(t,i,n) } , T.Icon = T.c.extend({ initialize: function(t) { T.setOptions(this, t) }, setIconUrl: function(t) { this.options.iconUrl = t, this.img && (this.img.src = t) }, getIconUrl: function(t) { if (this.img) return this.img.src }, setIconSize: function(t) { this.options.iconSize = t, this.img && (this.img.style.width = t.x + "px", this.img.style.height = t.y + "px") }, getIconSize: function() { return this.options.iconSize }, setIconAnchor: function(t) { this.options.iconAnchor = t, this.er(this.img, "icon") }, getIconAnchor: function(t) { return this.options.iconAnchor }, Rr: function(t) { return this.rr("icon", t) }, Tr: function(t) { return this.rr("shadow", t) }, rr: function(t, i) { var n = this.tr(t); return n ? (this.img = this.Yr(n, i && "IMG" === i.tagName ? i : null), this.er(this.img, t), this.img) : null }, er: function(t, i) { var n = this.options , e = n[i + "Size"]; T.S.l(e) || e instanceof T.Point || (e = [e, e]); var o = T.SQ(e) , s = T.SQ("shadow" === i && n.Ur || n.iconAnchor || o && o.dQ(2, !0)); t.className = "tdt-marker-" + i + " " + (n.className || ""), s && (t.style.marginLeft = -s.x + "px", t.style.marginTop = -s.y + "px"), o && (t.style.width = o.x + "px", t.style.height = o.y + "px") }, Yr: function(t, i) { return i = i || document.createElement("img"), i.src = t, i }, tr: function(t) { return T.oQ.retina && this.options[t + "RetinaUrl"] || this.options[t + "Url"] } }), T.ur = function(t) { return new T.Icon(t) } , T.Icon.Default = T.Icon.extend({ options: { iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -41], shadowSize: [41, 41] }, tr: function(t) { var i = t + "Url"; if (this.options[i]) return this.options[i]; var n = T.Icon.Default.imagePath; return n + "/marker-" + t + (T.oQ.retina && "icon" === t ? "-2x" : "") + ".png" } }), T.Icon.Default.imagePath = function() { var t, i, n, e, o = document.getElementsByTagName("script"), s = /[\/^]tdt[\-\._]?([\w\-\._]*)\.js\??/; for (t = 0, i = o.length; t < i; t++) if (n = o[t].src || "", n.match(s)) return e = n.split(s)[0], (e ? e + "/" : "") + "image" }(), T.Icon.Default.imagePath = T.w.e, T.Marker = T.Overlay.extend({ options: { icon: new T.Icon.Default, mR: !0, draggable: !1, Ir: !0, title: "", zIndexOffset: 0, opacity: 1, ir: !0, Or: 250, type: 2, hE: "markerPane", pE: ["click", "dblclick", "mouseover", "mouseout", "contextmenu"] }, initialize: function(t, i) { T.setOptions(this, i), this.or = T.fq(t), this.Pr = null }, onAdd: function(t) { this.ZE = this.ZE && t.options.PW, this.ZE && t.on("Ge", this.ge, this), this.pr(), this.update() }, onRemove: function(t) { this.AE && this.AE.aE() && (this.options.draggable = !0, this.AE.Ar()), this.ZE && t.off("Ge", this.ge, this), this.ar(), this.Sr(), this.Pr = null }, CE: function() { return { zoom: this.update, viewreset: this.update } }, getType: function() { return this.options.type }, getMap: function() { return this.jE }, getLngLat: function() { return this.PE() }, PE: function() { return this.or }, setLngLat: function(t) { this.sr(t) }, sr: function(t) { var i = this.or; return this.or = T.fq(t), this.update(), this.wQ("move", { oldLngLat: i, lnglat: this.or }) }, setZIndexOffset: function(t) { return this.options.zIndexOffset = t, this.update() }, setIcon: function(t) { return this.options.icon = t, this.jE && (this.pr(), this.update()), this.Dr && this.dr(this.Dr, this.Dr.options), this }, getIcon: function() { return this.options.icon }, enableDragging: function() { this.AE.enable() }, disableDragging: function() { this.AE.disable() }, getElement: function() { return this.Fr }, update: function() { if (this.Fr) { var t = this.jE.kw(this.or).hQ(); this.fr(t) } return this }, pr: function() { var t = this.options , i = "tdt-zoom-" + (this.ZE ? "animated" : "hide") , n = t.icon.Rr(this.Fr) , e = !1; n !== this.Fr && (this.Fr && this.ar(), e = !0, t.title && (n.title = t.title), t.Fq && (n.Fq = t.Fq)), T._Q.Rq(n, i), t.Ir && (n.tabIndex = "0"), this.Fr = n, t.ir && this.on({ mouseover: this.Gr, mouseout: this.gr }); var o = t.icon.Tr(this.Hr) , s = !1; o !== this.Hr && (this.Sr(), s = !0), o && T._Q.Rq(o, i), this.Hr = o, t.opacity < 1 && this.Se(), e && this.getPane().appendChild(this.Fr), this.hr(), o && s && this.getPane("_w").appendChild(this.Hr) }, ar: function() { this.options.ir && this.off({ mouseover: this.Gr, mouseout: this.gr }), T._Q.Qq(this.Fr), this.LE(this.Fr), this.Fr = null }, Sr: function() { this.Hr && T._Q.Qq(this.Hr), this.Hr = null }, fr: function(t) { T._Q.setPosition(this.Fr, t), this.Hr && T._Q.setPosition(this.Hr, t), this.Jr = t.y + this.options.zIndexOffset, this.gr() }, se: function(t) { this.Fr.style.zIndex = this.Jr + t }, ge: function(t) { var i = this.jE.DE(this.or, t.zoom, t.center).hQ(); this.fr(i) }, hr: function() { if (this.options.mR && (T._Q.Rq(this.Fr, "tdt-interactive"), this.kE(this.Fr), T.Kr.jr)) { var t = this.options.draggable; this.AE && (t = this.AE.aE(), this.AE.disable()), this.AE = new T.Kr.jr(this), t && this.AE.enable() } }, setOpacity: function(t) { return this.options.opacity = t, this.jE && this.Se(), this }, Se: function() { var t = this.options.opacity; T._Q.setOpacity(this.Fr, t), this.Hr && T._Q.setOpacity(this.Hr, t) }, Gr: function() { this.se(this.options.Or) }, gr: function() { this.se(0) } }), T.kr = function(t, i) { return new T.Marker(t,i) } , T.DivIcon = T.Icon.extend({ options: { iconSize: [12, 12], html: !1, bgPos: null, className: "tdt-div-icon" }, Rr: function(t) { var i = t && "DIV" === t.tagName ? t : document.createElement("div") , n = this.options; if (i.innerHTML = n.html !== !1 ? n.html : "", n.bgPos) { var e = T.SQ(n.bgPos); i.style.backgroundPosition = -e.x + "px " + -e.y + "px" } return this.er(i, "icon"), i }, Tr: function() { return null } }), T.Lr = function(t) { return new T.DivIcon(t) } , T.Map.n({ lr: !1 }), T.Zr = T.HE.extend({ options: { hE: "infoWindowPane", minWidth: 50, Cr: 300, maxHeight: null, offset: [0, 7], autoPan: !1, autoPanPadding: [5, 5], Vr: null, cr: null, closeButton: !0, Br: !0, vr: !1, Nr: !0 }, initialize: function(t, i) { T.setOptions(this, t), this.br = i }, onAdd: function(t) { this.ZE = this.ZE && this.options.Nr, this.Ow || this.DW(), t.Nw && T._Q.setOpacity(this.Ow, 0), clearTimeout(this.Mr), this.getPane().appendChild(this.Ow), this.update(), t.Nw && T._Q.setOpacity(this.Ow, 1), t.wQ("nr", { _r: this }), this.wQ("open", { lnglat: this.or }), this.br && (this.br.wQ("nr", { _r: this }, !0), this.br.on("UE", T.oq.stopPropagation)) }, mr: function(t) { return t.QT(this), this }, onRemove: function(t) { t.Nw ? (T._Q.setOpacity(this.Ow, 0), this.Mr = setTimeout(T.D(T._Q.Qq, T._Q, this.Ow), 200)) : T._Q.Qq(this.Ow), t.wQ("qT", { _r: this }), this.wQ("close", { lnglat: this.or, infowindow: this }), this.br && (this.br.wQ("qT", { _r: this }, !0), this.br.off("UE", T.oq.stopPropagation)) }, PE: function() { return this.or }, sr: function(t) { return this.or = T.fq(t), this.jE && (this.WT(), this.wT()), this }, getContent: function() { return this.ET }, setContent: function(t) { return this.ET = t, this.update(), this }, getElement: function() { return this.Ow }, update: function() { this.jE && (this.Ow.style.visibility = "hidden", this.eT(), this.RT(), this.WT(), this.Ow.style.visibility = "", this.wT()) }, CE: function() { var t = { zoom: this.WT, viewreset: this.WT }; return this.ZE && (t.Ge = this.ge), ("closeOnClick"in this.options ? this.options.closeOnClick : this.jE.options.lr) && (t.UE = this.rT), this.options.vr && (t.moveend = this.wT), t }, isOpen: function() { return !!this.jE && this.jE.hasLayer(this) }, pe: function() { return this.jE && T._Q.Wq(this.Ow), this }, ae: function() { return this.jE && T._Q.wq(this.Ow), this }, rT: function() { this.jE && (this.wQ("clickclose", {}), this.jE.TT(this)) }, DW: function() { var t = "tdt-infowindow" , i = this.Ow = T._Q.s("div", t + " " + (this.options.className || "") + " tdt-zoom-" + (this.ZE ? "animated" : "hide")); if (this.options.closeButton) { var n = this.tT = T._Q.s("a", t + "-close-button", i); n.href = "#close", n.innerHTML = "×", T.oq.on(n, "click", this.YT, this) } var e = this.UT = T._Q.s("div", t + "-content-wrapper", i); this.uT = T._Q.s("div", t + "-content", e), T.oq.iT(e).IT(this.uT).on(e, "contextmenu", T.oq.stopPropagation), this.OT = T._Q.s("div", t + "-tip-container", i), this.oT = T._Q.s("div", t + "-tip", this.OT) }, eT: function() { if (this.ET) { var t = this.uT , i = "function" == typeof this.ET ? this.ET(this.br || this) : this.ET; if ("string" == typeof i) t.innerHTML = i; else { for (; t.hasChildNodes(); ) t.removeChild(t.firstChild); t.appendChild(i) } this.wQ("contentupdate") } }, RT: function() { var t = this.uT , i = t.style; i.width = "", i.whiteSpace = "nowrap"; var n = t.offsetWidth; n = Math.min(n, this.options.Cr), n = Math.max(n, this.options.minWidth), i.width = n + 1 + "px", i.whiteSpace = "", i.height = ""; var e = t.offsetHeight , o = this.options.maxHeight , s = "tdt-infowindow-scrolled"; o && e > o ? (i.height = o + "px", T._Q.Rq(t, s)) : T._Q.Tq(t, s), this.PT = this.Ow.offsetWidth }, WT: function() { if (this.jE) { var t = this.jE.kw(this.or) , i = T.SQ(this.options.offset) , n = this._getAnchor(); this.ZE ? T._Q.setPosition(this.Ow, t.AQ(n)) : i = i.AQ(t).AQ(n); var e = this.pT = -i.y , o = this.AT = -Math.round(this.PT / 2) + i.x; this.Ow.style.bottom = e + "px", this.Ow.style.left = o + "px" } }, ge: function(t) { var i = this.jE.DE(this.or, t.zoom, t.center) , n = this._getAnchor(); T._Q.setPosition(this.Ow, i.AQ(n)) }, wT: function() { if (!(!this.options.autoPan || this.jE.EE && this.jE.EE.aT)) { var t = this.jE , i = this.Ow.offsetHeight , n = this.PT , e = new T.Point(this.AT,-i - this.pT); this.ZE && e.aQ(T._Q.getPosition(this.Ow)); var o = t.Zw(e) , s = T.SQ(this.options.autoPanPadding) , r = T.SQ(this.options.Vr || s) , h = T.SQ(this.options.cr || s) , a = t.getSize() , u = 0 , c = 0; o.x + n + h.x > a.x && (u = o.x + n - a.x + h.x), o.x - u - r.x < 0 && (u = o.x - r.x), o.y + i + h.y > a.y && (c = o.y + i - a.y + h.y), o.y - c - r.y < 0 && (c = o.y - r.y), (u || c) && t.wQ("ST").panBy([u, c]) } }, YT: function(t) { this.rT(), T.oq.uw(t) }, _getAnchor: function() { return T.SQ(this.br && this.br.sT ? this.br.sT() : [0, 0]) } }), T._r = function(t, i) { return new T.Zr(t,i) } , T.Map.M({ QT: function(t, i, n) { return t instanceof T.Zr || (t = new T.Zr(n).setContent(t)), i && t.sr(i), this.hasLayer(t) ? this : (this.Dr && this.Dr.options.Br && this.TT(), this.Dr = t, this.addLayer(t)) }, openInfoWindow: function(t, i, n) { this.QT(t, i, n) }, closeInfoWindow: function(t) { this.TT(t) }, TT: function(t) { return t && t !== this.Dr || (t = this.Dr, this.Dr = null), t && this.removeLayer(t), this }, closeInfoWindow: function(t) { this.TT(t) } }), T.HE.M({ dr: function(t, i) { return t instanceof T.Zr ? (T.setOptions(t, i), this.Dr = t, t.br = this) : (this.Dr && !i || (this.Dr = new T.Zr(i,this)), this.Dr.setContent(t)), this.DT || (this.on({ Qq: this.TT, move: this.dT }), this.DT = !0), this }, FT: function() { return this.Dr && (this.off({ Qq: this.TT, move: this.dT }), this.DT = !1, this.Dr = null), this }, openInfoWindow: function(t, i) { this.QT(), this.Pr || (this.Pr = this.dr(t, i), this.QT()) }, closeInfoWindow: function() { this.TT() }, QT: function(t, i) { if (t instanceof T.HE || (i = t, t = this), t instanceof T.fT) for (var n in this.hW) { t = this.hW[n]; break } return i || (i = t.getCenter ? t.getCenter() : t.PE()), this.Dr && this.jE && (this.Dr.br = t, this.Dr.update(), this.jE.QT(this.Dr, i)), this }, TT: function() { return this.Dr && this.Dr.rT(), this }, GT: function(t) { return this.Dr && (this.Dr.jE ? this.TT() : this.QT(t)), this }, gT: function() { return this.Dr.isOpen() }, isOpen: function() { this.gT() }, HT: function(t) { return this.Dr && this.Dr.setContent(t), this }, hT: function() { return this.Dr }, JT: function(t) { var i = t.layer || t.target; if (this.Dr && this.jE) return T.oq.uw(t), i instanceof T.jT ? void this.QT(t.layer || t.target, t.KT) : void (this.jE.hasLayer(this.Dr) && this.Dr.br === i ? this.TT() : this.QT(i, t.KT)) }, dT: function(t) { this.Dr.sr(t.KT) } }), T.Marker.M({ sT: function() { return this.options.icon.options.popupAnchor || (this.options.icon.options.iconAnchor ? T.S.l(this.options.icon.options.iconAnchor) ? this.options.icon.options.popupAnchor = [0, -this.options.icon.options.iconAnchor[1]] : this.options.icon.options.popupAnchor = [0, -this.options.icon.options.iconAnchor.y] : this.options.icon.options.popupAnchor = [0, 0]), this.options.icon.options.popupAnchor } }), T.InfoWindow = T.Zr.extend({ options: { type: 3 }, initialize: function(t, i, n) { this.ET = t, T.setOptions(this, i), this.br = n }, getType: function() { return this.options.type }, setMinWidth: function(t) { this.options.minWidth = t, this.update() }, setMaxWidth: function(t) { this.options.Cr = t, this.update() }, setMaxHeight: function(t) { this.options.maxHeight = t, this.update() }, setLngLat: function(t) { this.sr(t) }, setOffset: function(t) { this.options.offset = t, this.update() }, getOffset: function() { return this.options.offset }, closeInfoWindow: function() { this.rT() } }), T.LayerGroup = T.HE.extend({ initialize: function(t) { this.hW = {}; var i, n; if (t) for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]) }, addLayer: function(t) { var i = this.getLayerId(t); return this.hW[i] = t, this.jE && this.jE.addLayer(t), this }, removeLayer: function(t) { var i = t in this.hW ? t : this.getLayerId(t); return this.jE && this.hW[i] && this.jE.removeLayer(this.hW[i]), delete this.hW[i], this }, hasLayer: function(t) { return !!t && (t in this.hW || this.getLayerId(t)in this.hW) }, clearLayers: function() { for (var t in this.hW) this.removeLayer(this.hW[t]); return this }, kT: function(t) { var i, n, e = Array.prototype.slice.call(arguments, 1); for (i in this.hW) n = this.hW[i], n[t] && n[t].apply(n, e); return this }, onAdd: function(t) { for (var i in this.hW) t.addLayer(this.hW[i]) }, onRemove: function(t) { for (var i in this.hW) t.removeLayer(this.hW[i]) }, bE: function(t, i) { for (var n in this.hW) t.call(i, this.hW[n]); return this }, getLayer: function(t) { return this.hW[t] }, getLayers: function() { var t = []; for (var i in this.hW) t.push(this.hW[i]); return t }, setZIndex: function(t) { return this.kT("setZIndex", t) }, getLayerId: function(t) { return T.d(t) } }), T.LT = function(t) { return new T.LayerGroup(t) } , T.fT = T.LayerGroup.extend({ addLayer: function(t) { return this.hasLayer(t) ? this : (t.TQ(this), T.LayerGroup.prototype.addLayer.call(this, t), this.wQ("layeradd", { layer: t })) }, removeLayer: function(t) { return this.hasLayer(t) ? (t in this.hW && (t = this.hW[t]), t.tQ(this), T.LayerGroup.prototype.removeLayer.call(this, t), this.wQ("layerremove", { layer: t })) : this }, setStyle: function(t) { return this.kT("setStyle", t) }, pe: function() { return this.kT("pe") }, ae: function() { return this.kT("ae") }, getBounds: function() { var t = new T.Kq; for (var i in this.hW) { var n = this.hW[i]; t.extend(n.getBounds ? n.getBounds() : n.PE()) } return t } }), T.lT = function(t) { return new T.fT(t) } , T.MapType = T.LayerGroup.extend({ initialize: function(t, i, n) { this.name = i, this.hW = {}; var e, o; if (t) for (e = 0, o = t.length; e < o; e++) this.addLayer(t[e]) }, getName: function() { return this.name } }), T.Map.M({ LW: function(t) { var i = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); i.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.t() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.r() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } ; var n = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); n.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.Y() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.T() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } , TMAP_NORMAL_MAP = new T.MapType([i, n],"TMAP_NORMAL_MAP",{ a: 1 }); var e = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); e.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.I() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.U() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } ; var o = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); o.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.i() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.u() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } , TMAP_SATELLITE_MAP = new T.MapType([e],"TMAP_SATELLITE_MAP"), TMAP_HYBRID_MAP = new T.MapType([e, o],"TMAP_HYBRID_MAP"); var s = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); s.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.P() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.O() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } ; var r = new T.TileLayer("",{ minZoom: 1, maxZoom: 18 }); r.getTileUrl = function(t) { return 0 == T.gq.EW ? T.w.p() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z : T.w.o() + "TILECOL=" + t.x + "&TILEROW=" + t.y + "&TILEMATRIX=" + t.z } , TMAP_TERRAIN_MAP = new T.MapType([s],"TMAP_TERRAIN_MAP"), TMAP_TERRAIN_HYBRID_MAP = new T.MapType([s, r],"TMAP_TERRAIN_HYBRID_MAP") } }), T.ZT = T.HE.extend({ options: { MW: .1 }, initialize: function(t) { T.setOptions(this, t), T.d(this) }, onAdd: function() { this.Ow || (this.sW(), this.ZE && T._Q.Rq(this.Ow, "tdt-zoom-animated")), this.getPane().appendChild(this.Ow), this.Oe() }, onRemove: function() { T._Q.Qq(this.Ow) }, CE: function() { var t = { viewreset: this.wr, zoom: this.CT, moveend: this.Oe }; return this.ZE && (t.Ge = this.VT), t }, VT: function(t) { this.cT(t.center, t.zoom) }, CT: function() { this.cT(this.jE.getCenter(), this.jE.getZoom()) }, cT: function(t, i) { var n = this.jE.cW(i, this.fW) , e = T._Q.getPosition(this.Ow) , o = this.jE.getSize().fQ(.5 + this.options.MW) , s = this.jE.nq(this.BT, i) , r = this.jE.nq(t, i) , h = r.sQ(s) , a = o.fQ(-n).AQ(e).AQ(o).sQ(h); T.oQ.any3d ? T._Q.Uq(this.Ow, a, n) : T._Q.setPosition(this.Ow, a) }, wr: function() { this.Oe(), this.cT(this.BT, this.fW) }, Oe: function() { var t = this.options.MW , i = this.jE.getSize() , n = this.jE.Lw(i.fQ(-t)).hQ(); this.Qr = new T.ZQ(n,n.AQ(i.fQ(1 + 2 * t)).hQ()), this.BT = this.jE.getCenter(), this.fW = this.jE.getZoom() } }), T.Map.M({ vT: function(t) { var i = t.options.iW || this.NT(t.options.hE) || this.options.iW || this.bT; return i || (i = this.bT = this.options._T && T.nT() || T.MT()), this.hasLayer(i) || this.addLayer(i), i }, NT: function(t) { if ("overlayPane" === t || void 0 === t) return !1; var i = this.nw[t]; return void 0 === i && (i = T.SVG && T.MT({ hE: t }) || T.mT && T.nT({ hE: t }), this.nw[t] = i), i } }), T.jT = T.Overlay.extend({ options: { stroke: !0, color: "#0000FF", weight: 3, opacity: .5, Qt: "round", qt: "round", dashArray: null, dashOffset: null, fill: !1, fillColor: null, fillOpacity: .2, Wt: "evenodd", mR: !0 }, vE: function(t) { this.bT = t.vT(this) }, onAdd: function() { this.bT.wt(this), this.wr(), this.bT.Et(this) }, onRemove: function() { this.bT.et(this) }, CE: function() { return { zoomend: this.Rt, moveend: this.Oe, viewreset: this.wr } }, redraw: function() { return this.jE && this.bT.rt(this), this }, setStyle: function(t) { return T.setOptions(this, t), this.bT && this.bT.Tt(this), this }, pe: function() { return this.bT && this.bT.Gr(this), this }, ae: function() { return this.bT && this.bT.tt(this), this }, getElement: function() { return this.Yt }, wr: function() { this.Rt(), this.Oe() }, Ut: function() { return (this.options.stroke ? this.options.weight / 2 : 0) + (T.oQ.touch ? 10 : 0) } }), T.ut = { It: function(t, i) { if (!i || !t.length) return t.slice(); var n = i * i; return t = this.it(t, n), t = this.Ot(t, n) }, ot: function(t, i, n) { return Math.sqrt(this.Pt(t, i, n, !0)) }, pt: function(t, i, n) { return this.Pt(t, i, n) }, Ot: function(t, i) { var n = t.length , e = typeof Uint8Array != void 0 + "" ? Uint8Array : Array , o = new e(n); o[0] = o[n - 1] = 1, this.At(t, o, i, 0, n - 1); var s, r = []; for (s = 0; s < n; s++) o[s] && r.push(t[s]); return r }, At: function(t, i, n, e, o) { var s, r, h, a = 0; for (r = e + 1; r <= o - 1; r++) h = this.Pt(t[r], t[e], t[o], !0), h > a && (s = r, a = h); a > n && (i[s] = 1, this.At(t, i, n, e, s), this.At(t, i, n, s, o)) }, it: function(t, i) { for (var n = [t[0]], e = 1, o = 0, s = t.length; e < s; e++) this.at(t[e], t[o]) > i && (n.push(t[e]), o = e); return o < s - 1 && n.push(t[s - 1]), n }, St: function(t, i, n, e, o) { var s, r, h, a = e ? this.st : this.Dt(t, n), u = this.Dt(i, n); for (this.st = u; ; ) { if (!(a | u)) return [t, i]; if (a & u) return !1; s = a || u, r = this.dt(t, i, s, n, o), h = this.Dt(r, n), s === a ? (t = r, a = h) : (i = r, u = h) } }, dt: function(t, i, n, e, o) { var s, r, h = i.x - t.x, a = i.y - t.y, u = e.min, c = e.max; return 8 & n ? (s = t.x + h * (c.y - t.y) / a, r = c.y) : 4 & n ? (s = t.x + h * (u.y - t.y) / a, r = u.y) : 2 & n ? (s = c.x, r = t.y + a * (c.x - t.x) / h) : 1 & n && (s = u.x, r = t.y + a * (u.x - t.x) / h), new T.Point(s,r,o) }, Dt: function(t, i) { var n = 0; return t.x < i.min.x ? n |= 1 : t.x > i.max.x && (n |= 2), t.y < i.min.y ? n |= 4 : t.y > i.max.y && (n |= 8), n }, at: function(t, i) { var n = i.x - t.x , e = i.y - t.y; return n * n + e * e }, Pt: function(t, i, n, e) { var o, s = i.x, r = i.y, h = n.x - s, a = n.y - r, u = h * h + a * a; return u > 0 && (o = ((t.x - s) * h + (t.y - r) * a) / u, o > 1 ? (s = n.x, r = n.y) : o > 0 && (s += h * o, r += a * o)), h = t.x - s, a = t.y - r, e ? h * h + a * a : new T.Point(s,r) } }, T.Polyline = T.jT.extend({ options: { Ft: 1, type: 4, ft: !1 }, initialize: function(t, i) { T.setOptions(this, i), this.Gt(t), this.gt = "solid", this.options.lineStyle && this.setLineStyle(this.options.lineStyle) }, getType: function() { return this.options.type }, Ht: function() { return this.ht }, getLngLats: function() { return this.Ht() }, Jt: function(t) { return this.Gt(t), this.redraw() }, setLngLats: function(t) { this.Jt(t) }, setColor: function(t) { this.setStyle({ color: t }) }, getColor: function() { return this.options.color }, setWeight: function(t) { this.setStyle({ weight: t }) }, getWeight: function() { return this.options.weight }, setOpacity: function(t) { this.setStyle({ opacity: t }) }, getOpacity: function() { return this.options.opacity }, setLineStyle: function(t) { "dashed" == t ? (this.gt = "dashed", T.oQ.ie8 || T.oQ.ie7 ? this.setStyle({ dashArray: "2,2" }) : this.setStyle({ dashArray: "4" })) : (this.gt = "solid", this.setStyle({ dashArray: "" })) }, getLineStyle: function() { return this.gt }, getMap: function() { return this.jE }, enableEdit: function() { this.jt && this.jt.enable() }, disableEdit: function() { this.jt && this.jt.disable() }, isEditable: function() { return this.jt.aE() }, Kt: function() { return !this.ht.length }, kt: function(t) { for (var i, n, e = 1 / 0, o = null, s = T.ut.Pt, r = 0, h = this.Lt.length; r < h; r++) for (var a = this.Lt[r], u = 1, c = a.length; u < c; u++) { i = a[u - 1], n = a[u]; var l = s(t, i, n, !0); l < e && (e = l, o = s(t, i, n)) } return o && (o.distance = Math.sqrt(e)), o }, getCenter: function() { var t, i, n, e, o, s, r, h = this.lt[0], a = h.length; if (!a) return null; for (t = 0, i = 0; t < a - 1; t++) i += h[t].distanceTo(h[t + 1]) / 2; if (0 === i) return this.jE.Dw(h[0]); for (t = 0, e = 0; t < a - 1; t++) if (o = h[t], s = h[t + 1], n = o.distanceTo(s), e += n, e > i) return r = (e - i) / n, this.jE.Dw([s.x - r * (s.x - o.x), s.y - r * (s.y - o.y)]) }, getBounds: function() { return this.Qr }, Zt: function(t, i) { return i = i || this.Ct(), t = T.fq(t), i.push(t), this.Qr.extend(t), this.redraw() }, Gt: function(t) { this.Qr = new T.Kq, this.ht = this.Vt(t) }, Ct: function() { return T.Polyline.ct(this.ht) ? this.ht : this.ht[0] }, Vt: function(t) { for (var i = [], n = T.Polyline.ct(t), e = 0, o = t.length; e < o; e++) n ? (i[e] = T.fq(t[e]), this.Qr.extend(i[e])) : i[e] = this.Vt(t[e]); return i }, Rt: function() { var t = new T.ZQ; this.lt = [], this.Bt(this.ht, this.lt, t); var i = this.Ut() , n = new T.Point(i,i); this.Qr.vQ() && t.vQ() && (t.min.DQ(n), t.max.aQ(n), this.vt = t) }, Bt: function(t, i, n) { var e, o, s = t[0]instanceof T.dq, r = t.length; if (s) { for (o = [], e = 0; e < r; e++) o[e] = this.jE.kw(t[e]), n.extend(o[e]); i.push(o) } else for (e = 0; e < r; e++) this.Bt(t[e], i, n) }, Nt: function() { var t = this.bT.Qr; if (this.Lt = [], this.vt && this.vt.intersects(t)) { if (this.options.ft) return void (this.Lt = this.lt); var i, n, e, o, s, r, h, a = this.Lt; for (i = 0, e = 0, o = this.lt.length; i < o; i++) for (h = this.lt[i], n = 0, s = h.length; n < s - 1; n++) r = T.ut.St(h[n], h[n + 1], t, n, !0), r && (a[e] = a[e] || [], a[e].push(r[0]), r[1] === h[n + 1] && n !== s - 2 || (a[e].push(r[1]), e++)) } }, bt: function() { for (var t = this.Lt, i = this.options.Ft, n = 0, e = t.length; n < e; n++) t[n] = T.ut.It(t[n], i) }, Oe: function() { this.jE && (this.Nt(), this.bt(), this.rt()) }, rt: function() { this.bT.Mt(this) }, show: function() { this.getElement().style.display = "block" }, hide: function() { this.getElement().style.display = "none" }, isHidden: function() { return "none" == this.getElement().style.display } }), T.nt = function(t, i) { return new T.Polyline(t,i) } , T.Polyline.ct = function(t) { return !T.S.l(t[0]) || "object" != typeof t[0][0] && "undefined" != typeof t[0][0] } , T._t = {}, T._t.mt = function(t, i, n) { var e, o, s, r, h, a, u, c, l, f = [1, 4, 2, 8], d = T.ut; for (o = 0, u = t.length; o < u; o++) t[o]._code = d.Dt(t[o], i); for (r = 0; r < 4; r++) { for (c = f[r], e = [], o = 0, u = t.length, s = u - 1; o < u; s = o++) h = t[o], a = t[s], h._code & c ? a._code & c || (l = d.dt(a, h, c, i, n), l._code = d.Dt(l, i), e.push(l)) : (a._code & c && (l = d.dt(a, h, c, i, n), l._code = d.Dt(l, i), e.push(l)), e.push(h)); t = e } return t } , T.Polygon = T.Polyline.extend({ options: { fill: !0, type: 5 }, setFillColor: function(t) { this.setStyle({ fillColor: t }) }, getFillColor: function() { return this.options.fillColor }, setFillOpacity: function(t) { this.setStyle({ fillOpacity: t }) }, getFillOpacity: function() { return this.options.fillOpacity }, Kt: function() { return !this.ht.length || !this.ht[0].length }, getCenter: function() { var t, i, n, e, o, s, r, h, a, u = this.lt[0], c = u.length; if (!c) return null; for (s = r = h = 0, t = 0, i = c - 1; t < c; i = t++) n = u[t], e = u[i], o = n.y * e.x - e.y * n.x, r += (n.x + e.x) * o, h += (n.y + e.y) * o, s += 3 * o; return a = 0 === s ? u[0] : [r / s, h / s], this.jE.Dw(a) }, Vt: function(t) { var i = T.Polyline.prototype.Vt.call(this, t) , n = i.length; return n >= 2 && i[0]instanceof T.dq && i[0].equals(i[n - 1]) && i.pop(), i }, Gt: function(t) { T.Polyline.prototype.Gt.call(this, t), T.Polyline.ct(this.ht) && (this.ht = [this.ht]) }, Ct: function() { return T.Polyline.ct(this.ht[0]) ? this.ht[0] : this.ht[0][0] }, Nt: function() { var t = this.bT.Qr , i = this.options.weight , n = new T.Point(i,i); if (t = new T.ZQ(t.min.sQ(n),t.max.AQ(n)), this.Lt = [], this.vt && this.vt.intersects(t)) { if (this.options.ft) return void (this.Lt = this.lt); for (var e, o = 0, s = this.lt.length; o < s; o++) e = T._t.mt(this.lt[o], t, !0), e.length && this.Lt.push(e) } }, rt: function() { this.bT.Mt(this, !0) } }), T.QY = function(t, i) { return new T.Polygon(t,i) } , T.Rectangle = T.Polygon.extend({ options: { type: 6 }, initialize: function(t, i) { T.Polygon.prototype.initialize.call(this, this.qY(t), i) }, setBounds: function(t) { return this.Jt(this.qY(t)) }, qY: function(t) { return t = T.jq(t), [t.getSouthWest(), t.Zq(), t.getNorthEast(), t.cq()] } }), T.WY = function(t, i) { return new T.Rectangle(t,i) } , T.wY = T.jT.extend({ options: { fill: !0, radius: 10, type: 8 }, initialize: function(t, i) { T.setOptions(this, i), this.or = T.fq(t), this.EY = this.options.radius }, sr: function(t) { return this.or = T.fq(t), this.redraw(), this.wQ("move", { KT: this.or }) }, PE: function() { return this.or }, setRadius: function(t) { return this.options.radius = this.EY = t, this.redraw() }, getRadius: function() { return this.EY }, setStyle: function(t) { var i = t && t.radius || this.EY; return T.jT.prototype.setStyle.call(this, t), this.setRadius(i), this }, Rt: function() { this.eY = this.jE.kw(this.or), this.RY() }, RY: function() { var t = this.EY , i = this.rY || t , n = this.Ut() , e = [t + n, i + n]; this.vt = new T.ZQ(this.eY.sQ(e),this.eY.AQ(e)) }, Oe: function() { this.jE && this.rt() }, rt: function() { this.bT.TY(this) }, tY: function() { return this.EY && !this.bT.Qr.intersects(this.vt) } }), T.YY = function(t, i) { return new T.wY(t,i) } , T.Circle = T.wY.extend({ initialize: function(t, i, n) { "number" == typeof i && (i = T.extend({}, n, { radius: i })), T.setOptions(this, i), this.or = T.fq(t), isNaN(this.options.radius), this.UY = this.options.radius, this.gt = "solid", this.options.lineStyle && this.setLineStyle(this.options.lineStyle) }, getType: function() { return this.options.type }, setCenter: function(t) { this.sr(t) }, getCenter: function() { return this.PE() }, setColor: function(t) { this.setStyle({ color: t }) }, getColor: function() { return this.options.color }, setWeight: function(t) { this.setStyle({ weight: t }) }, getWeight: function() { return this.options.weight }, setOpacity: function(t) { this.setStyle({ opacity: t }) }, getOpacity: function() { return this.options.opacity }, setFillColor: function(t) { this.setStyle({ fillColor: t }) }, getFillColor: function() { return this.options.fillColor }, setFillOpacity: function(t) { this.setStyle({ fillOpacity: t }) }, getFillOpacity: function() { return this.options.fillOpacity }, setLineStyle: function(t) { "dashed" == t ? (this.gt = "dashed", T.oQ.ie8 || T.oQ.ie7 ? this.setStyle({ dashArray: "2,2" }) : this.setStyle({ dashArray: "4" })) : (this.gt = "solid", this.setStyle({ dashArray: "" })) }, getLineStyle: function() { return this.gt }, enableEdit: function() { this.jt && this.jt.enable() }, isEditable: function() { return this.jt.aE() }, disableEdit: function() { this.jt && this.jt.disable() }, getMap: function() { return this.jE }, setRadius: function(t) { return this.UY = t, this.redraw() }, getRadius: function() { return this.UY }, getBounds: function() { var t = [this.EY, this.rY || this.EY]; return new T.Kq(this.jE.Dw(this.eY.sQ(t)),this.jE.Dw(this.eY.AQ(t))) }, setStyle: T.jT.prototype.setStyle, Rt: function() { var t = this.or.lng , i = this.or.lat , n = this.jE , e = n.options.IW; if (e.distance === T.gq.Gq.distance) { var o = Math.PI / 180 , s = this.UY / T.gq.Gq.R / o , r = n.nq([i + s, t]) , h = n.nq([i - s, t]) , a = r.AQ(h).dQ(2) , u = n._q(a).lat , c = Math.acos((Math.cos(s * o) - Math.sin(i * o) * Math.sin(u * o)) / (Math.cos(i * o) * Math.cos(u * o))) / o; (isNaN(c) || 0 === c) && (c = s / Math.cos(Math.PI / 180 * i)), this.eY = a.sQ(n.Jw()), this.EY = isNaN(c) ? 0 : Math.max(Math.round(a.x - n.nq([u, t - c]).x), 1), this.rY = Math.max(Math.round(a.y - r.y), 1) } else { var l = e._q(e.nq(this.or).sQ([this.UY, 0])); this.eY = n.kw(this.or), this.EY = this.eY.x - n.kw(l).x } this.RY() } }), T.uY = function(t, i, n) { return new T.Circle(t,i,n) } , T.SVG = T.ZT.extend({ CE: function() { var t = T.ZT.prototype.CE.call(this); return t.zoomstart = this.IY, t }, sW: function() { this.Ow = T.SVG.s("svg"), this.Ow.setAttribute("pointer-events", "none"), this._rootGroup = T.SVG.s("g"), this.Ow.appendChild(this._rootGroup) }, IY: function() { this.Oe() }, Oe: function() { if (!this.jE.ER || !this.Qr) { T.ZT.prototype.Oe.call(this); var t = this.Qr , i = t.getSize() , n = this.Ow; this._svgSize && this._svgSize.equals(i) || (this._svgSize = i, n.setAttribute("width", i.x), n.setAttribute("height", i.y)), T._Q.setPosition(n, t.min), n.setAttribute("viewBox", [t.min.x, t.min.y, i.x, i.y].join(" ")) } }, wt: function(t) { var i = t.Yt = T.SVG.s("path"); t.options.className && T._Q.Rq(i, t.options.className), t.options.mR && T._Q.Rq(i, "tdt-interactive"), this.Tt(t) }, Et: function(t) { this._rootGroup.appendChild(t.Yt), t.kE(t.Yt) }, et: function(t) { T._Q.Qq(t.Yt), t.LE(t.Yt) }, rt: function(t) { t.Rt(), t.Oe() }, Tt: function(t) { var i = t.Yt , n = t.options; i && (n.stroke ? (i.setAttribute("stroke", n.color), i.setAttribute("stroke-opacity", n.opacity), i.setAttribute("stroke-width", n.weight), i.setAttribute("stroke-linecap", n.Qt), i.setAttribute("stroke-linejoin", n.qt), n.dashArray ? i.setAttribute("stroke-dasharray", n.dashArray) : i.removeAttribute("stroke-dasharray"), n.dashOffset ? i.setAttribute("stroke-dashoffset", n.dashOffset) : i.removeAttribute("stroke-dashoffset")) : i.setAttribute("stroke", "none"), n.fill ? (i.setAttribute("fill", n.fillColor || n.color), i.setAttribute("fill-opacity", n.fillOpacity), i.setAttribute("fill-rule", n.Wt || "evenodd")) : i.setAttribute("fill", "none")) }, Mt: function(t, i) { this.iY(t, T.SVG.OY(t.Lt, i)) }, TY: function(t) { var i = t.eY , n = t.EY , e = t.rY || n , o = "a" + n + "," + e + " 0 1,0 " , s = t.tY() ? "M0 0" : "M" + (i.x - n) + "," + i.y + o + 2 * n + ",0 " + o + 2 * -n + ",0 "; this.iY(t, s) }, iY: function(t, i) { t.Yt.setAttribute("d", i) }, Gr: function(t) { T._Q.Wq(t.Yt) }, tt: function(t) { T._Q.wq(t.Yt) } }), T.extend(T.SVG, { s: function(t) { return document.createElementNS("http://www.w3.org/2000/svg", t) }, OY: function(t, i) { var n, e, o, s, r, h, a = ""; for (n = 0, o = t.length; n < o; n++) { for (r = t[n], e = 0, s = r.length; e < s; e++) h = r[e], a += (e ? "L" : "M") + h.x + " " + h.y; a += i ? T.oQ.MT ? "z" : "x" : "" } return a || "M0 0" } }), T.oQ.MT = !(!document.createElementNS || !T.SVG.s("svg").createSVGRect), T.MT = function(t) { return T.oQ.MT || T.oQ.vml ? new T.SVG(t) : null } , T.oQ.vml = !T.oQ.MT && function() { try { var t = document.createElement("div"); t.innerHTML = ''; var i = t.firstChild; return i.style.behavior = "url(#default#VML)", i && "object" == typeof i.adj } catch (AO) { return !1 } }(), T.SVG.M(T.oQ.vml ? { sW: function() { this.Ow = T._Q.s("div", "tdt-vml-container") }, Oe: function() { this.jE.ER || T.ZT.prototype.Oe.call(this) }, wt: function(t) { var i = t.Ow = T.SVG.s("shape"); T._Q.Rq(i, "tdt-vml-shape " + (this.options.className || "")), i.coordsize = "1 1", t.Yt = T.SVG.s("path"), i.appendChild(t.Yt), this.Tt(t) }, Et: function(t) { var i = t.Ow; this.Ow.appendChild(i), t.options.mR && t.kE(i) }, et: function(t) { var i = t.Ow; T._Q.Qq(i), t.LE(i) }, Tt: function(t) { var i = t._stroke , n = t._fill , e = t.options , o = t.Ow; o.stroked = !!e.stroke, o.filled = !!e.fill, e.stroke ? (i || (i = t._stroke = T.SVG.s("stroke")), o.appendChild(i), i.weight = e.weight + "px", i.color = e.color, i.opacity = e.opacity, e.dashArray ? i.dashStyle = T.S.l(e.dashArray) ? e.dashArray.join(" ") : e.dashArray.replace(/( *, *)/g, " ") : i.dashStyle = "", i.endcap = e.Qt.replace("butt", "flat"), i.joinstyle = e.qt) : i && (o.removeChild(i), t._stroke = null), e.fill ? (n || (n = t._fill = T.SVG.s("fill")), o.appendChild(n), n.color = e.fillColor || e.color, n.opacity = e.fillOpacity) : n && (o.removeChild(n), t._fill = null) }, TY: function(t) { var i = t.eY.hQ() , n = Math.round(t.EY) , e = Math.round(t.rY || n); this.iY(t, t.tY() ? "M0 0" : "AL " + i.x + "," + i.y + " " + n + "," + e + " 0,23592600") }, iY: function(t, i) { t.Yt.v = i }, Gr: function(t) { T._Q.Wq(t.Ow) }, tt: function(t) { T._Q.wq(t.Ow) } } : {}), T.oQ.vml && (T.SVG.s = function() { try { return document.namespaces.AQ("lvml", "urn:schemas-microsoft-com:vml"), function(t) { return document.createElement("') } } catch (AO) { return function(t) { return document.createElement("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">') } } }()), T.mT = T.ZT.extend({ onAdd: function() { T.ZT.prototype.onAdd.call(this), this.hW = this.hW || {}, this.oY() }, sW: function() { var t = this.Ow = document.createElement("canvas"); T.oq.on(t, "mousemove", T.S.G(this.PY, 32, this), this).on(t, "click dblclick mousedown mouseup contextmenu", this.pY, this).on(t, "mouseout", this.AY, this), this.aY = t.getContext("2d") }, Oe: function() { if (!this.jE.ER || !this.Qr) { this.SY = {}, T.ZT.prototype.Oe.call(this); var t = this.Qr , i = this.Ow , n = t.getSize() , e = T.oQ.retina ? 2 : 1; T._Q.setPosition(i, t.min), i.width = e * n.x, i.height = e * n.y, i.style.width = n.x + "px", i.style.height = n.y + "px", T.oQ.retina && this.aY.scale(2, 2), this.aY.translate(-t.min.x, -t.min.y) } }, wt: function(t) { this._updateDashArray(t), this.hW[T.d(t)] = t }, Et: T.S.H, et: function(t) { t.sY = !0, this.DY(t) }, rt: function(t) { this.dY = t.vt, this.oY(!0), t.Rt(), t.Oe(), this.oY(), this.dY = null }, Tt: function(t) { this._updateDashArray(t), this.DY(t) }, _updateDashArray: function(t) { if (t.options.dashArray) { var i, n = t.options.dashArray.split(","), e = []; for (i = 0; i < n.length; i++) e.push(Number(n[i])); t.options._dashArray = e } }, DY: function(t) { if (this.jE) { var i = (t.options.weight || 0) + 1; this.dY = this.dY || new T.ZQ, this.dY.extend(t.vt.min.sQ([i, i])), this.dY.extend(t.vt.max.AQ([i, i])), this.FY = this.FY || T.S.C(this.fY, this) } }, fY: function() { this.FY = null, this.oY(!0), this.oY(), this.dY = null }, oY: function(t) { this.GY = t; var i, n = this.dY; this.aY.save(), n && (this.aY.beginPath(), this.aY.rect(n.min.x, n.min.y, n.max.x - n.min.x, n.max.y - n.min.y), this.aY.clip()); for (var e in this.hW) i = this.hW[e], (!n || i.vt && i.vt.intersects(n)) && i.rt(), t && i.sY && (delete i.sY, delete this.hW[e]); this.aY.restore() }, Mt: function(t, i) { var n, e, o, s, r = t.Lt, h = r.length, a = this.aY; if (h) { for (this.SY[t.F] = t, a.beginPath(), a.setLineDash && a.setLineDash(t.options && t.options._dashArray || []), n = 0; n < h; n++) { for (e = 0, o = r[n].length; e < o; e++) s = r[n][e], a[e ? "lineTo" : "moveTo"](s.x, s.y); i && a.closePath() } this.gY(a, t) } }, TY: function(t) { if (!t.tY()) { var i = t.eY , n = this.aY , e = t.EY , o = (t.rY || e) / e; this.SY[t.F] = t, 1 !== o && (n.save(), n.scale(1, o)), n.beginPath(), n.arc(i.x, i.y / o, e, 0, 2 * Math.PI, !1), 1 !== o && n.restore(), this.gY(n, t) } }, gY: function(t, i) { var n = this.GY , e = i.options; t.globalCompositeOperation = n ? "destination-out" : "source-over", e.fill && (t.globalAlpha = n ? 1 : e.fillOpacity, t.fillStyle = e.fillColor || e.color, t.fill(e.Wt || "evenodd")), e.stroke && 0 !== e.weight && (t.globalAlpha = n ? 1 : e.opacity, i._prevWeight = t.lineWidth = n ? i._prevWeight + 1 : e.weight, t.strokeStyle = e.color, t.Qt = e.Qt, t.qt = e.qt, t.stroke()) }, pY: function(t) { var i, n = this.jE.cw(t), e = []; for (var o in this.hW) i = this.hW[o], i.options.mR && i.HY(n) && !this.jE.IE(i) && (T.oq.hY(t), e.push(i)); e.length && this.JY(e, t) }, PY: function(t) { if (this.jE && !this.jE.AE.moving() && !this.jE.ER) { var i = this.jE.cw(t); this.AY(t, i), this.jY(t, i) } }, AY: function(t, i) { var n = this.KY; !n || "mouseout" !== t.type && n.HY(i) || (T._Q.Tq(this.Ow, "tdt-interactive"), this.JY([n], t, "mouseout"), this.KY = null) }, jY: function(t, i) { var n, e; for (n in this.SY) e = this.SY[n], e.options.mR && e.HY(i) && (T._Q.Rq(this.Ow, "tdt-interactive"), this.JY([e], t, "mouseover"), this.KY = e); this.KY && this.JY([this.KY], t) }, JY: function(t, i, n) { this.jE.oE(i, n || i.type, t) }, Gr: T.S.H, tt: T.S.H }), T.oQ.nT = function() { return !!document.createElement("canvas").getContext }(), T.nT = function(t) { return T.oQ.nT ? new T.mT(t) : null } , T.Polyline.prototype.HY = function(t, i) { var n, e, o, s, r, h, a = this.Ut(); if (!this.vt.contains(t)) return !1; for (n = 0, s = this.Lt.length; n < s; n++) for (h = this.Lt[n], e = 0, r = h.length, o = r - 1; e < r; o = e++) if ((i || 0 !== e) && T.ut.ot(t, h[o], h[e]) <= a) return !0; return !1 } , T.Polygon.prototype.HY = function(t) { var i, n, e, o, s, r, h, a, u = !1; if (!this.vt.contains(t)) return !1; for (o = 0, h = this.Lt.length; o < h; o++) for (i = this.Lt[o], s = 0, a = i.length, r = a - 1; s < a; r = s++) n = i[s], e = i[r], n.y > t.y != e.y > t.y && t.x < (e.x - n.x) * (t.y - n.y) / (e.y - n.y) + n.x && (u = !u); return u || T.Polyline.prototype.HY.call(this, t, !0) } , T.wY.prototype.HY = function(t) { return t.distanceTo(this.eY) <= this.EY + this.Ut() } , T.GeoJSON = T.fT.extend({ initialize: function(t, i) { T.setOptions(this, i), this.hW = {}, t && this.addData(t) }, addData: function(t) { var i, n, e, o = T.S.l(t) ? t : t.features; if (o) { for (i = 0, n = o.length; i < n; i++) e = o[i], (e.geometries || e.geometry || e.features || e.coordinates) && this.addData(e); return this } var s = this.options; if (s.filter && !s.filter(t)) return this; var r = T.GeoJSON.geometryToLayer(t, s); return r ? (r.feature = T.GeoJSON.kY(t), r.defaultOptions = r.options, this.resetStyle(r), s.onEachFeature && s.onEachFeature(t, r), this.addLayer(r)) : this }, resetStyle: function(t) { return t.options = T.S.extend({}, t.defaultOptions), this.LY(t, this.options.style), this }, setStyle: function(t) { return this.bE(function(i) { this.LY(i, t) }, this) }, LY: function(t, i) { "function" == typeof i && (i = i(t.feature)), t.setStyle && t.setStyle(i) } }), T.extend(T.GeoJSON, { geometryToLayer: function(t, i) { var n, e, o, s, r = "Feature" === t.type ? t.geometry : t, h = r ? r.coordinates : null, a = [], u = i && i.pointToLayer, c = i && i.coordsToLatLng || this.coordsToLatLng; if (!h && !r) return null; switch (r.type) { case "Point": return n = c(h), u ? u(t, n) : new T.Marker(n); case "MultiPoint": for (o = 0, s = h.length; o < s; o++) n = c(h[o]), a.push(u ? u(t, n) : new T.Marker(n)); return new T.fT(a); case "LineString": case "MultiLineString": return e = this.coordsToLatLngs(h, "LineString" === r.type ? 0 : 1, c), new T.Polyline(e,i); case "Polygon": case "MultiPolygon": return e = this.coordsToLatLngs(h, "Polygon" === r.type ? 1 : 2, c), new T.Polygon(e,i); case "GeometryCollection": for (o = 0, s = r.geometries.length; o < s; o++) { var l = this.geometryToLayer({ geometry: r.geometries[o], type: "Feature", properties: t.properties }, i); l && a.push(l) } return new T.fT(a) } }, coordsToLatLng: function(t) { return new T.dq(t[1],t[0],t[2]) }, coordsToLatLngs: function(t, i, n) { for (var e, o = [], s = 0, r = t.length; s < r; s++) e = i ? this.coordsToLatLngs(t[s], i - 1, n) : (n || this.coordsToLatLng)(t[s]), o.push(e); return o }, lY: function(t) { return void 0 !== t.Fq ? [t.lng, t.lat, t.Fq] : [t.lng, t.lat] }, ZY: function(t, i, n) { for (var e = [], o = 0, s = t.length; o < s; o++) e.push(i ? T.GeoJSON.ZY(t[o], i - 1, n) : T.GeoJSON.lY(t[o])); return !i && n && e.push(e[0]), e }, CY: function(t, i) { return t.feature ? T.extend({}, t.feature, { geometry: i }) : T.GeoJSON.kY(i) }, kY: function(t) { return "Feature" === t.type ? t : { type: "Feature", properties: {}, geometry: t } } }); var PointToGeoJSON = { toGeoJSON: function() { return T.GeoJSON.CY(this, { type: "Point", coordinates: T.GeoJSON.lY(this.PE()) }) } }; T.Marker.M(PointToGeoJSON), T.Circle.M(PointToGeoJSON), T.wY.M(PointToGeoJSON), T.Polyline.prototype.toGeoJSON = function() { var t = !T.Polyline.ct(this.ht) , i = T.GeoJSON.ZY(this.ht, t ? 1 : 0); return T.GeoJSON.CY(this, { type: (t ? "Multi" : "") + "LineString", coordinates: i }) } , T.Polygon.prototype.toGeoJSON = function() { var t = !T.Polyline.ct(this.ht) , i = t && !T.Polyline.ct(this.ht[0]) , n = T.GeoJSON.ZY(this.ht, i ? 2 : t ? 1 : 0, !0); return t || (n = [n]), T.GeoJSON.CY(this, { type: (i ? "Multi" : "") + "Polygon", coordinates: n }) } , T.LayerGroup.M({ VY: function() { var t = []; return this.bE(function(i) { t.push(i.toGeoJSON().geometry.coordinates) }), T.GeoJSON.CY(this, { type: "MultiPoint", coordinates: t }) }, toGeoJSON: function() { var t = this.feature && this.feature.geometry && this.feature.geometry.type; if ("MultiPoint" === t) return this.VY(); var i = "GeometryCollection" === t , n = []; return this.bE(function(t) { if (t.toGeoJSON) { var e = t.toGeoJSON(); n.push(i ? e.geometry : T.GeoJSON.kY(e)) } }), i ? T.GeoJSON.CY(this, { geometries: n, type: "GeometryCollection" }) : { type: "FeatureCollection", features: n } } }), T.cY = function(t, i) { return new T.GeoJSON(t,i) } , T.BY = T.cY; var eventsKey = "_tdt_events"; T.oq = { on: function(t, i, n, e) { if ("object" == typeof i) for (var o in i) this.QQ(t, o, i[o], n); else { i = T.S.j(i); for (var s = 0, r = i.length; s < r; s++) this.QQ(t, i[s], n, e) } return this }, off: function(t, i, n, e) { if ("object" == typeof i) for (var o in i) this.WQ(t, o, i[o], n); else { i = T.S.j(i); for (var s = 0, r = i.length; s < r; s++) this.WQ(t, i[s], n, e) } return this }, QQ: function(t, i, n, e) { var o = i + T.d(n) + (e ? "_" + T.d(e) : ""); if (t[eventsKey] && t[eventsKey][o]) return this; var s = function(i) { return n.call(e || t, i || window.event) } , r = s; return T.oQ.pointer && 0 === i.indexOf("touch") ? this.vY(t, i, s, o) : T.oQ.touch && "dblclick" === i && this.NY ? this.NY(t, s, o) : "addEventListener"in t ? "mousewheel" === i ? t.addEventListener("onwheel"in t ? "wheel" : "mousewheel", s, !1) : "mouseenter" === i || "mouseleave" === i ? (s = function(i) { i = i || window.event, T.oq.iE(t, i) && r(i) } , t.addEventListener("mouseenter" === i ? "mouseover" : "mouseout", s, !1)) : ("click" === i && T.oQ.android && (s = function(t) { return T.oq.bY(t, r) } ), t.addEventListener(i, s, !1)) : "attachEvent"in t && t.attachEvent("on" + i, s), t[eventsKey] = t[eventsKey] || {}, t[eventsKey][o] = s, this }, WQ: function(t, i, n, e) { var o = i + T.d(n) + (e ? "_" + T.d(e) : "") , s = t[eventsKey] && t[eventsKey][o]; return s ? (T.oQ.pointer && 0 === i.indexOf("touch") ? this.removePointerListener(t, i, o) : T.oQ.touch && "dblclick" === i && this.MY ? this.MY(t, o) : "removeEventListener"in t ? "mousewheel" === i ? t.removeEventListener("onwheel"in t ? "wheel" : "mousewheel", s, !1) : t.removeEventListener("mouseenter" === i ? "mouseover" : "mouseleave" === i ? "mouseout" : i, s, !1) : "detachEvent"in t && t.detachEvent("on" + i, s), t[eventsKey][o] = null, this) : this }, stopPropagation: function(t) { return t.stopPropagation ? t.stopPropagation() : t.originalEvent ? t.originalEvent._stopped = !0 : t.cancelBubble = !0, T.oq.OE(t), this }, IT: function(t) { return T.oq.on(t, "mousewheel", T.oq.stopPropagation) }, iT: function(t) { var i = T.oq.stopPropagation; return T.oq.on(t, T.nY.START.join(" "), i), T.oq.on(t, { click: T.oq.hY, dblclick: i }) }, preventDefault: function(t) { return t.preventDefault ? t.preventDefault() : t.returnValue = !1, this }, uw: function(t) { return T.oq.preventDefault(t).stopPropagation(t) }, Vw: function(t, i) { if (!i) return new T.Point(t.clientX,t.clientY); var n = i.getBoundingClientRect(); return new T.Point(t.clientX - n.left - i.clientLeft,t.clientY - n.top - i.clientTop) }, _wheelPxFactor: T.oQ.win && T.oQ.chrome ? 2 : T.oQ.gecko ? window.PQ : 1, _Y: function(t) { return T.oQ.edge ? t.wheelDeltaY / 2 : t.deltaY && 0 === t.deltaMode ? -t.deltaY / T.oq._wheelPxFactor : t.deltaY && 1 === t.deltaMode ? 20 * -t.deltaY : t.deltaY && 2 === t.deltaMode ? 60 * -t.deltaY : t.deltaX || t.deltaZ ? 0 : t.wheelDelta ? (t.wheelDeltaY || t.wheelDelta) / 2 : t.detail && Math.abs(t.detail) < 32765 ? 20 * -t.detail : t.detail ? t.detail / -32765 * 60 : 0 }, mY: {}, hY: function(t) { T.oq.mY[t.type] = !0 }, OE: function(t) { var i = this.mY[t.type]; return this.mY[t.type] = !1, i }, iE: function(t, i) { var n = i.relatedTarget; if (!n) return !0; try { for (; n && n !== t; ) n = n.parentNode } catch (AO) { return !1 } return n !== t }, bY: function(t, i) { var n = t.timeStamp || t.originalEvent && t.originalEvent.timeStamp , e = T.oq.QU && n - T.oq.QU; return e && e > 100 && e < 500 || t.target.qU && !t.uE ? void T.oq.uw(t) : (T.oq.QU = n, void i(t)) } }, T.oq.addListener = T.oq.on, T.oq.removeListener = T.oq.off, T.nY = T.m.extend({ options: { clickTolerance: 3 }, v: { START: T.oQ.touch ? ["touchstart", "mousedown"] : ["mousedown"], END: { mousedown: "mouseup", touchstart: "touchend", pointerdown: "touchend", MSPointerDown: "touchend" }, MOVE: { mousedown: "mousemove", touchstart: "touchmove", pointerdown: "touchmove", MSPointerDown: "touchmove" } }, initialize: function(t, i, n) { this.WU = t, this.wU = i || t, this.EU = n }, enable: function() { this.eU || (T.oq.on(this.wU, T.nY.START.join(" "), this.RU, this), this.eU = !0) }, disable: function() { this.eU && (T.oq.off(this.wU, T.nY.START.join(" "), this.RU, this), this.eU = !1, this.sw = !1) }, RU: function(t) { if (!t.uE && this.eU && (this.sw = !1, !T._Q.Eq(this.WU, "tdt-zoom-anim") && !(T.nY._dragging || t.shiftKey || 1 !== t.which && 1 !== t.button && !t.touches) && this.eU && (T.nY._dragging = !0, this.EU && T._Q.Sq(this.WU), T._Q.Aq(), T._Q.Oq(), !this.rU))) { this.wQ("down"); var i = t.touches ? t.touches[0] : t; this.TU = new T.Point(i.clientX,i.clientY), T.oq.on(document, T.nY.MOVE[t.type], this.fe, this).on(document, T.nY.END[t.type], this.tU, this) } }, fe: function(t) { if (!t.uE && this.eU) { if (t.touches && t.touches.length > 1) return void (this.sw = !0); var i = t.touches && 1 === t.touches.length ? t.touches[0] : t , n = new T.Point(i.clientX,i.clientY) , e = n.sQ(this.TU); (e.x || e.y) && (Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance || (T.oq.preventDefault(t), this.sw || (this.wQ("dragstart"), this.sw = !0, this.YU = T._Q.getPosition(this.WU).sQ(e), T._Q.Rq(document.body, "tdt-dragging"), this.UU = t.target || t.srcElement, window.SVGElementInstance && this.UU instanceof SVGElementInstance && (this.UU = this.UU.correspondingUseElement), T._Q.Rq(this.UU, "tdt-drag-target")), this.uU = this.YU.AQ(e), this.rU = !0, T.S.V(this.IU), this.iU = t, this.IU = T.S.C(this.WT, this, !0))) } }, WT: function() { var t = { originalEvent: this.iU }; this.wQ("OU", t), T._Q.setPosition(this.WU, this.uU), this.wQ("drag", t) }, tU: function(t) { if (!t.uE && this.eU) { T._Q.Tq(document.body, "tdt-dragging"), this.UU && (T._Q.Tq(this.UU, "tdt-drag-target"), this.UU = null); for (var i in T.nY.MOVE) T.oq.off(document, T.nY.MOVE[i], this.fe, this).off(document, T.nY.END[i], this.tU, this); T._Q.aq(), T._Q.Pq(), this.sw && this.rU && (T.S.V(this.IU), this.wQ("dragend", {})), this.rU = !1, T.nY._dragging = !1 } } }), T.Kr = T.c.extend({ initialize: function(t) { this.jE = t }, enable: function() { return this.eU ? this : (this.eU = !0, this.oU(), this) }, disable: function() { return this.eU ? (this.eU = !1, this.Ar(), this) : this }, aE: function() { return !!this.eU } }), T.Map.n({ AE: !0, PU: !T.oQ.android23, pU: 3400, AU: 1 / 0, aU: .2, SU: !0, sU: 0 }), T.Map.DU = T.Kr.extend({ oU: function() { if (!this.dU) { var t = this.jE; this.dU = new T.nY(t.ow,t.Ow), this.dU.on({ down: this.RU, dragstart: this.FU, drag: this.fU, dragend: this.GU }, this), this.dU.on("OU", this.gU, this), t.options.SU && (this.dU.on("OU", this.HU, this), t.on("zoomend", this.hU, this), t.sE(this.hU, this)) } T._Q.Rq(this.jE.Ow, "tdt-grab tdt-touch-drag"), this.dU.enable(), this.JU = [], this.jU = [] }, Ar: function() { T._Q.Tq(this.jE.Ow, "tdt-grab"), T._Q.Tq(this.jE.Ow, "tdt-touch-drag"), this.dU.disable() }, moved: function() { return this.dU && this.dU.sw }, moving: function() { return this.dU && this.dU.rU }, RU: function() { this.jE.Iw() }, FU: function() { var t = this.jE; if (this.jE.options.maxBounds && this.jE.options.sU) { var i = T.jq(this.jE.options.maxBounds); this.KU = T.cQ(this.jE.BW(i.Zq()).fQ(-1), this.jE.BW(i.cq()).fQ(-1).AQ(this.jE.getSize())), this.kU = Math.min(1, Math.max(0, this.jE.options.sU)) } else this.KU = null; t.wQ("movestart").wQ("dragstart"), t.options.PU && (this.JU = [], this.jU = []) }, fU: function(t) { if (this.jE.options.PU) { var i = this.LU = +new Date , n = this.lU = this.dU.ZU || this.dU.uU; this.JU.push(n), this.jU.push(i), i - this.jU[0] > 50 && (this.JU.shift(), this.jU.shift()) } this.jE.wQ("move", t).wQ("drag", t) }, hU: function() { var t = this.jE.getSize().dQ(2) , i = this.jE.kw([0, 0]); this.CU = i.sQ(t).x, this.VU = this.jE.Kw().getSize().x }, cU: function(t, i) { return t - (t - i) * this.kU }, gU: function() { if (this.kU && this.KU) { var t = this.dU.uU.sQ(this.dU.YU) , i = this.KU; t.x < i.min.x && (t.x = this.cU(t.x, i.min.x)), t.y < i.min.y && (t.y = this.cU(t.y, i.min.y)), t.x > i.max.x && (t.x = this.cU(t.x, i.max.x)), t.y > i.max.y && (t.y = this.cU(t.y, i.max.y)), this.dU.uU = this.dU.YU.AQ(t) } }, HU: function() { var t = this.VU , i = Math.round(t / 2) , n = this.CU , e = this.dU.uU.x , o = (e - i + n) % t + i - n , s = (e + i + n) % t - i - n , r = Math.abs(o + n) < Math.abs(s + n) ? o : s; this.dU.ZU = this.dU.uU.pQ(), this.dU.uU.x = r }, GU: function(t) { var i = this.jE , n = i.options , e = !n.PU || this.jU.length < 2; if (i.wQ("dragend", t), e) i.wQ("moveend"); else { var o = this.lU.sQ(this.JU[0]) , s = (this.LU - this.jU[0]) / 1e3 , r = n.aU , h = o.fQ(r / s) , a = h.distanceTo([0, 0]) , u = Math.min(n.AU, a) , c = h.fQ(u / a) , l = u / (n.pU * r) , f = c.fQ(-l / 2).hQ(); f.x || f.y ? (f = i.fE(f, i.options.maxBounds), T.S.C(function() { i.panBy(f, { duration: l, aU: r, BU: !0, Tw: !0 }) })) : i.wQ("moveend") } } }), T.Map.M({ enableDrag: function() { this.AE.enable() }, disableDrag: function() { this.AE.disable() }, isDrag: function() { return this.AE.eU }, enableInertia: function() { this.options.PU = !0 }, disableInertia: function() { this.options.PU = !1 }, isInertia: function() { return this.options.PU } }), T.Map._("iw", "AE", T.Map.DU), T.Map.n({ vU: !0 }), T.Map.NU = T.Kr.extend({ initialize: function(t) { this.jE = t, this.Ow = t.Ow, this.overlayPane = t.aw.overlayPane, this._w = t.aw._w, this.markerPane = t.aw.markerPane, this.infoWindowPane = t.aw.infoWindowPane }, oU: function() { T.oq.on(this.jE, "zoomstart", this.IY, this), T.oq.on(this.jE, "zoomend", this.hU, this) }, Ar: function() { T.oq.off(this.jE, "zoomstart", this.IY), T.oq.off(this.jE, "zoomend", this.hU) }, IY: function(t) { this.jE.CW && (this.overlayPane.style.visibility = "hidden", this._w.style.visibility = "hidden", this.markerPane.style.visibility = "hidden", this.infoWindowPane.style.visibility = "hidden") }, hU: function(t) { this.jE.CW && (this.overlayPane.style.visibility = "inherit", this._w.style.visibility = "inherit", this.markerPane.style.visibility = "inherit", this.infoWindowPane.style.visibility = "inherit") } }), T.Map._("iw", "vU", T.Map.NU), T.Map.n({ bU: !0 }), T.Map.MU = T.Kr.extend({ oU: function() { this.jE.on("dblclick", this.nU, this) }, Ar: function() { this.jE.off("dblclick", this.nU, this) }, nU: function(t) { var i = this.jE , n = i.getZoom() , e = i.options.aW , o = t.originalEvent.shiftKey ? n - e : n + e; return !(o > i.getMaxZoom()) && void ("center" === i.options.bU ? i.setZoom(o) : i.VW(t.containerPoint, o)) } }), T.Map.M({ enableDoubleClickZoom: function() { this.bU.enable() }, disableDoubleClickZoom: function() { this.bU.disable() }, isDoubleClickZoom: function() { return this.bU.eU } }), T.Map._("iw", "bU", T.Map.MU), T.Map.n({ _U: !0, mU: 40, Qu: 70 }), T.Map.qu = T.Kr.extend({ oU: function() { T.oq.on(this.jE.Ow, "mousewheel", this.Wu, this), this.wu = 0 }, Ar: function() { T.oq.off(this.jE.Ow, "mousewheel", this.Wu, this) }, Wu: function(t) { var i = T.oq._Y(t) , n = this.jE.options.mU; this.wu += i, this.Eu = this.jE.Cw(t), this.eu || (this.eu = +new Date); var e = Math.max(n - (+new Date - this.eu), 0); clearTimeout(this.Ru), this.Ru = setTimeout(T.D(this.ru, this), e), T.oq.uw(t) }, ru: function() { var t = this.jE , i = t.getZoom() , n = this.jE.options.AW || 0; t.Iw(); var e = this.wu / (4 * this.jE.options.Qu) , o = 4 * Math.log(2 / (1 + Math.exp(-Math.abs(e)))) / Math.LN2 , s = n ? Math.ceil(o / n) * n : o , r = t.GW(i + (this.wu > 0 ? s : -s)) - i; this.wu = 0, this.eu = null, r && ("center" === t.options._U ? t.setZoom(i + r) : t.VW(this.Eu, i + r)) } }), T.Map.M({ enableScrollWheelZoom: function() { this._U.enable() }, disableScrollWheelZoom: function() { this._U.disable() }, isScrollWheelZoom: function() { return this._U.eU } }), T.Map._("iw", "_U", T.Map.qu), T.extend(T.oq, { Tu: T.oQ.msPointer ? "MSPointerDown" : T.oQ.pointer ? "pointerdown" : "touchstart", tu: T.oQ.msPointer ? "MSPointerUp" : T.oQ.pointer ? "pointerup" : "touchend", NY: function(t, i, n) { function e(t) { var i; if (i = T.oQ.pointer ? T.oq.Yu : t.touches.length, !(i > 1)) { var n = Date.now() , e = n - (s || n); r = t.touches ? t.touches[0] : t, h = e > 0 && e <= a, s = n } } function o() { if (h && !r.cancelBubble) { if (T.oQ.pointer) { var t, n, e = {}; for (n in r) t = r[n], e[n] = t && t.D ? t.D(r) : t; r = e } r.type = "dblclick", i(r), s = null } } var s, r, h = !1, a = 250, u = "_tdt_", c = this.Tu, l = this.tu; return t[u + c + n] = e, t[u + l + n] = o, t[u + "dblclick" + n] = i, t.addEventListener(c, e, !1), t.addEventListener(l, o, !1), T.oQ.edge || t.addEventListener("dblclick", i, !1), this }, MY: function(t, i) { var n = "_tdt_" , e = t[n + this.Tu + i] , o = t[n + this.tu + i] , s = t[n + "dblclick" + i]; return t.removeEventListener(this.Tu, e, !1), t.removeEventListener(this.tu, o, !1), T.oQ.edge || t.removeEventListener("dblclick", s, !1), this } }), T.extend(T.oq, { Uu: T.oQ.msPointer ? "MSPointerDown" : "pointerdown", uu: T.oQ.msPointer ? "MSPointerMove" : "pointermove", Iu: T.oQ.msPointer ? "MSPointerUp" : "pointerup", iu: T.oQ.msPointer ? "MSPointerCancel" : "pointercancel", TAG_WHITE_LIST: ["INPUT", "SELECT", "OPTION"], Ou: {}, Yu: 0, vY: function(t, i, n, e) { return "touchstart" === i ? this.ou(t, n, e) : "touchmove" === i ? this.Pu(t, n, e) : "touchend" === i && this.pu(t, n, e), this }, removePointerListener: function(t, i, n) { var e = t["_tdt_" + i + n]; return "touchstart" === i ? t.removeEventListener(this.Uu, e, !1) : "touchmove" === i ? t.removeEventListener(this.uu, e, !1) : "touchend" === i && (t.removeEventListener(this.Iu, e, !1), t.removeEventListener(this.iu, e, !1)), this }, ou: function(t, i, n) { var e = T.D(function(t) { if ("mouse" !== t.pointerType && t.pointerType !== t.MSPOINTER_TYPE_MOUSE) { if (!(this.TAG_WHITE_LIST.indexOf(t.target.tagName) < 0)) return; T.oq.preventDefault(t) } this.Au(t, i) }, this); if (t["_tdt_touchstart" + n] = e, t.addEventListener(this.Uu, e, !1), !this.au) { var o = T.D(this.Su, this); document.documentElement.addEventListener(this.Uu, T.D(this.su, this), !0), document.documentElement.addEventListener(this.uu, T.D(this.Du, this), !0), document.documentElement.addEventListener(this.Iu, o, !0), document.documentElement.addEventListener(this.iu, o, !0), this.au = !0 } }, su: function(t) { this.Ou[t.pointerId] = t, this.Yu++ }, Du: function(t) { this.Ou[t.pointerId] && (this.Ou[t.pointerId] = t) }, Su: function(t) { delete this.Ou[t.pointerId], this.Yu-- }, Au: function(t, i) { t.touches = []; for (var n in this.Ou) t.touches.push(this.Ou[n]); t.changedTouches = [t], i(t) }, Pu: function(t, i, n) { var e = T.D(function(t) { (t.pointerType !== t.MSPOINTER_TYPE_MOUSE && "mouse" !== t.pointerType || 0 !== t.buttons) && this.Au(t, i) }, this); t["_tdt_touchmove" + n] = e, t.addEventListener(this.uu, e, !1) }, pu: function(t, i, n) { var e = T.D(function(t) { this.Au(t, i) }, this); t["_tdt_touchend" + n] = e, t.addEventListener(this.Iu, e, !1), t.addEventListener(this.iu, e, !1) } }), T.Map.n({ du: !0 }), T.Map.Fu = T.Kr.extend({ initialize: function(t) { this.jE = t, this.Ow = t.Ow, this.fu = t.aw.overlayPane }, oU: function() { T.oq.on(this.Ow, "touchstart", this.Gu, this), T.oq.on(this.Ow, "touchmove", this.gu, this), T.oq.on(this.Ow, "touchend", this.Hu, this) }, Ar: function() { T.oq.off(this.Ow, "touchstart", this.Gu), T.oq.off(this.Ow, "touchmove", this.gu), T.oq.off(this.Ow, "touchend", this.Hu) }, Gu: function(t) { if (this.jE.CW) { var i = "touchstart"; this.jE.wQ(i, this.hu(t)); var n = this; return this.timer = setTimeout(function() { n.jE.wQ("longpress", n.hu(t)) }, 600), !1 } }, gu: function(t) { if (this.jE.CW) { var i = "touchmove"; this.jE.wQ(i, this.hu(t)) } }, Hu: function(t) { if (this.jE.CW) { var i = "touchend"; return this.jE.wQ(i, this.hu(t)), clearTimeout(this.timer), !1 } }, hu: function(t) { if (t.touches && 0 != t.changedTouches.length) { var i = this.jE.Cw(t.changedTouches[0]) , n = this.jE.Lw(i) , e = this.jE.Dw(n) , o = { lnglat: e, layerPoint: n, containerPoint: i, originalEvent: t }; return o } } }), T.Map._("iw", "du", T.Map.Fu), T.Map.n({ Ju: T.oQ.touch && !T.oQ.android23, ju: !1 }), T.Map.Ku = T.Kr.extend({ oU: function() { T._Q.Rq(this.jE.Ow, "tdt-touch-zoom"), T.oq.on(this.jE.Ow, "touchstart", this.Gu, this) }, Ar: function() { T._Q.Tq(this.jE.Ow, "tdt-touch-zoom"), T.oq.off(this.jE.Ow, "touchstart", this.Gu, this) }, Gu: function(t) { var i = this.jE; if (t.touches && 2 === t.touches.length && !i.ER && !this.ku) { var n = i.Cw(t.touches[0]) , e = i.Cw(t.touches[1]); this.Lu = i.getSize().FQ(2), this.lu = i.vW(this.Lu), "center" !== i.options.Ju && (this._pinchStartLatLng = i.vW(n.AQ(e).FQ(2))), this._startDist = n.distanceTo(e), this.Zu = i.getZoom(), this.sw = !1, this.ku = !0, i.Iw(), T.oq.on(document, "touchmove", this.gu, this).on(document, "touchend", this.Hu, this), T.oq.preventDefault(t) } }, gu: function(t) { if (t.touches && 2 === t.touches.length && this.ku) { var i = this.jE , n = i.Cw(t.touches[0]) , e = i.Cw(t.touches[1]) , o = n.distanceTo(e) / this._startDist; if (this.fW = i.gw(o, this.Zu), !i.options.ju && (this.fW < i.getMinZoom() && o < 1 || this.fW > i.getMaxZoom() && o > 1) && (this.fW = i.GW(this.fW)), "center" === i.options.Ju) { if (this.BT = this.lu, 1 === o) return } else { var s = n.aQ(e).FQ(2).DQ(this.Lu); if (1 === o && 0 === s.x && 0 === s.y) return; this.BT = i._q(i.nq(this._pinchStartLatLng, this.fW).sQ(s), this.fW) } this.sw || (i.qE(!0), this.sw = !0), T.S.V(this.IU); var r = T.D(i.QE, i, this.BT, this.fW, { pinch: !0, hQ: !1 }); this.IU = T.S.C(r, this, !0), T.oq.preventDefault(t) } }, Hu: function() { return this.sw && this.ku ? (this.ku = !1, T.S.V(this.IU), T.oq.off(document, "touchmove", this.gu).off(document, "touchend", this.Hu), void (this.jE.options.Nr ? this.jE.ge(this.BT, this.jE.GW(this.fW), !0, this.jE.options.snapZoom) : this.jE.ZW(this.BT, this.jE.GW(this.fW)))) : void (this.ku = !1) } }), T.Map.M({ enablePinchToZoom: function() { this.Ju.enable() }, disablePinchToZoom: function() { this.Ju.disable() }, isPinchToZoom: function() { return this.Ju.eU } }), T.Map._("iw", "Ju", T.Map.Ku), T.Map.n({ Cu: !0, Vu: 15 }), T.Map.cu = T.Kr.extend({ oU: function() { T.oq.on(this.jE.Ow, "touchstart", this.RU, this) }, Ar: function() { T.oq.off(this.jE.Ow, "touchstart", this.RU, this) }, RU: function(t) { if (t.touches) { if (T.oq.preventDefault(t), this.Bu = !0, t.touches.length > 1) return this.Bu = !1, void clearTimeout(this.vu); var i = t.touches[0] , n = i.target; this.YU = this.uU = new T.Point(i.clientX,i.clientY), n.tagName && "a" === n.tagName.toLowerCase() && T._Q.Rq(n, "tdt-active"), this.vu = setTimeout(T.D(function() { this.Nu() && (this.Bu = !1, this.tU(), this.bu("contextmenu", i)) }, this), 1e3), this.bu("mousedown", i), T.oq.on(document, { touchmove: this.fe, touchend: this.tU }, this) } }, tU: function(t) { if (clearTimeout(this.vu), T.oq.off(document, { touchmove: this.fe, touchend: this.tU }, this), this.Bu && t && t.changedTouches) { var i = t.changedTouches[0] , n = i.target; n && n.tagName && "a" === n.tagName.toLowerCase() && T._Q.Tq(n, "tdt-active"), this.bu("mouseup", i), this.Nu() && this.bu("click", i) } }, Nu: function() { return this.uU.distanceTo(this.YU) <= this.jE.options.Vu }, fe: function(t) { var i = t.touches[0]; this.uU = new T.Point(i.clientX,i.clientY), this.bu("mousemove", i) }, bu: function(t, i) { var n = document.createEvent("MouseEvents"); n.uE = !0, i.target.qU = !0, n.initMouseEvent(t, !0, !0, window, 1, i.screenX, i.screenY, i.clientX, i.clientY, !1, !1, !1, !1, 0, null), i.target.dispatchEvent(n) } }), T.oQ.touch && !T.oQ.pointer && T.Map._("iw", "Cu", T.Map.cu), T.Map.n({ SE: !0 }), T.Map.Mu = T.Kr.extend({ initialize: function(t) { this.jE = t, this.Ow = t.Ow, this.fu = t.aw.overlayPane }, oU: function() { T.oq.on(this.Ow, "mousedown", this.nu, this) }, Ar: function() { T.oq.off(this.Ow, "mousedown", this.nu, this) }, moved: function() { return this.sw }, _u: function() { this.sw = !1 }, nu: function(t) { return !(!t.shiftKey || 1 !== t.which && 1 !== t.button) && (this._u(), T._Q.Oq(), T._Q.Aq(), this.TU = this.jE.Cw(t), void T.oq.on(document, { contextmenu: T.oq.uw, mousemove: this.PY, mouseup: this.mu, keydown: this.QI }, this)) }, PY: function(t) { this.sw || (this.sw = !0, this.qI = T._Q.s("div", "tdt-zoom-box", this.Ow), T._Q.Rq(this.Ow, "tdt-crosshair"), this.jE.wQ("boxzoomstart")), this.eY = this.jE.Cw(t); var i = new T.ZQ(this.eY,this.TU) , n = i.getSize(); T._Q.setPosition(this.qI, i.min), this.qI.style.width = n.x + "px", this.qI.style.height = n.y + "px" }, WI: function() { this.sw && (T._Q.Qq(this.qI), T._Q.Tq(this.Ow, "tdt-crosshair")), T._Q.Pq(), T._Q.aq(), T.oq.off(document, { contextmenu: T.oq.uw, mousemove: this.PY, mouseup: this.mu, keydown: this.QI }, this) }, mu: function(t) { if ((1 === t.which || 1 === t.button) && (this.WI(), this.sw)) { setTimeout(T.D(this._u, this), 0); var i = new T.Kq(this.jE.vW(this.TU),this.jE.vW(this.eY)); this.jE._W(i).wQ("boxzoomend", { boxZoomBounds: i }) } }, QI: function(t) { 27 === t.keyCode && this.WI() } }), T.Map._("iw", "SE", T.Map.Mu), T.Map.n({ Ir: !0, wI: 80 }), T.Map.EI = T.Kr.extend({ keyCodes: { left: [37], right: [39], down: [40], up: [38], zoomIn: [187, 107, 61, 171], zoomOut: [189, 109, 54, 173] }, initialize: function(t) { this.jE = t, this.eI(t.options.wI), this.RI(t.options.aW) }, oU: function() { var t = this.jE.Ow; t.tabIndex <= 0 && (t.tabIndex = "0"), T.oq.on(t, { focus: this.rI, blur: this.TI, mousedown: this.nu }, this), this.jE.on({ focus: this.tI, blur: this.YI }, this) }, Ar: function() { this.YI(), T.oq.off(this.jE.Ow, { focus: this.rI, blur: this.TI, mousedown: this.nu }, this), this.jE.off({ focus: this.tI, blur: this.YI }, this) }, nu: function() { if (!this.UI) { var t = document.body , i = document.documentElement , n = t.scrollTop || i.scrollTop , e = t.scrollLeft || i.scrollLeft; this.jE.Ow.focus(), window.scrollTo(e, n) } }, rI: function() { this.UI = !0, this.jE.wQ("focus") }, TI: function() { this.UI = !1, this.jE.wQ("blur") }, eI: function(t) { var i, n, e = this._panKeys = {}, o = this.keyCodes; for (i = 0, n = o.left.length; i < n; i++) e[o.left[i]] = [-1 * t, 0]; for (i = 0, n = o.right.length; i < n; i++) e[o.right[i]] = [t, 0]; for (i = 0, n = o.down.length; i < n; i++) e[o.down[i]] = [0, t]; for (i = 0, n = o.up.length; i < n; i++) e[o.up[i]] = [0, -1 * t] }, RI: function(t) { var i, n, e = this.uI = {}, o = this.keyCodes; for (i = 0, n = o.zoomIn.length; i < n; i++) e[o.zoomIn[i]] = t; for (i = 0, n = o.zoomOut.length; i < n; i++) e[o.zoomOut[i]] = -t }, tI: function() { T.oq.on(document, "keydown", this.QI, this) }, YI: function() { T.oq.off(document, "keydown", this.QI, this) }, QI: function(t) { if (!(t.altKey || t.ctrlKey || t.metaKey)) { var i, n = t.keyCode, e = this.jE; if (n in this._panKeys) { if (e.EE && e.EE.aT) return; i = this._panKeys[n], t.shiftKey && (i = T.SQ(i).fQ(3)), e.panBy(i), e.options.maxBounds && e.Ew(e.options.maxBounds) } else if (n in this.uI) e.setZoom(e.getZoom() + (t.shiftKey ? 3 : 1) * this.uI[n]); else { if (27 !== n) return; e.TT() } T.oq.uw(t) } } }), T.Map.M({ enableKeyboard: function() { this.Ir.enable() }, disableKeyboard: function() { this.Ir.disable() }, isKeyboard: function() { return this.Ir.eU } }), T.Map._("iw", "Ir", T.Map.EI), T.Kr.jr = T.Kr.extend({ initialize: function(t) { this.II = t }, oU: function() { var t = this.II.Fr; this.dU || (this.dU = new T.nY(t,t,!0)), this.dU.on({ dragstart: this.FU, drag: this.fU, dragend: this.GU }, this).enable(), T._Q.Rq(t, "tdt-marker-draggable") }, Ar: function() { this.dU.off({ dragstart: this.FU, drag: this.fU, dragend: this.GU }, this).disable(), this.II.Fr && T._Q.Tq(this.II.Fr, "tdt-marker-draggable") }, moved: function() { return this.dU && this.dU.sw }, FU: function() { this.II.TT().wQ("movestart").wQ("dragstart") }, fU: function(t) { var i = this.II , n = i.Hr , e = T._Q.getPosition(i.Fr) , o = i.jE.Dw(e); n && T._Q.setPosition(n, e), i.or = o, t.lnglat = o, i.wQ("move", t).wQ("drag", t) }, GU: function(t) { var i = (this.II.Hr, T._Q.getPosition(this.II.Fr)) , n = this.II.jE.Dw(i); this.II.or = n, t.lnglat = n, this.II.wQ("moveend").wQ("dragend", t) } }), T.Control = T.c.extend({ options: { position: T_ANCHOR_TOP_RIGHT }, initialize: function(t) { T.setOptions(this, t) }, getPosition: function() { return this.options.position }, setPosition: function(t) { var i = this.jE; return i && i.removeControl(this), this.options.position = t, i && i.addControl(this), this }, getContainer: function() { return this.Ow }, show: function() { this.Ow.style.display = "block" }, hide: function() { this.Ow.style.display = "none" }, isHidden: function() { return "none" == this.Ow.style.display }, setOptions: function(t) { T.S.extend(this.options, t) }, setOffset: function(t) { this.point = t, this.Ow.style.left = t.x + "px", this.Ow.style.top = t.y + "px" }, getOffset: function() { return this.point }, addTo: function(t) { this.Qq(), this.jE = t; var i = this.Ow = this.onAdd(t) , n = this.getPosition() , e = t.iI[n]; return T._Q.Rq(i, "tdt-control"), n.indexOf("bottom") !== -1 ? e.insertBefore(i, e.firstChild) : e.appendChild(i), this }, Qq: function() { return this.jE ? (T._Q.Qq(this.Ow), this.onRemove && this.onRemove(this.jE), this.jE = null, this) : this }, OI: function(t) { this.jE && t && t.screenX > 0 && t.screenY > 0 && this.jE.getContainer().focus() } }), T.oI = function(t) { return new T.Control(t) } , T.Map.M({ addControl: function(t) { return t.addTo(this), this.wQ("addcontrol", { addcontrol: t }), this }, removeControl: function(t) { return t.Qq(), this.wQ("removecontrol", { removecontrol: t }), this }, Mw: function() { function t(t, o) { var s = n + t + " " + n + o; i[t + o] = T._Q.s("div", s, e) } var i = this.iI = {} , n = "tdt-" , e = this.PI = T._Q.s("div", n + "control-container", this.Ow); t("top", "left"), t("top", "right"), t("bottom", "left"), t("bottom", "right") }, Pw: function() { T._Q.Qq(this.PI) } }), T.Control.Zoom = T.Control.extend({ options: { position: T_ANCHOR_TOP_LEFT, zoomInText: "+", zoomInTitle: "放大", zoomOutText: "-", zoomOutTitle: "缩小" }, onAdd: function(t) { var i = "tdt-control-zoom" , n = T._Q.s("div", i + " tdt-bar") , e = this.options; return this.pI = this.AI(e.zoomInText, e.zoomInTitle, i + "-in", n, this.aI), this.SI = this.AI(e.zoomOutText, e.zoomOutTitle, i + "-out", n, this.sI), this.DI(), t.on("zoomend zoomlevelschange", this.DI, this), t.on("minzoom", this.DI, this), t.on("maxzoom", this.DI, this), n }, onRemove: function(t) { t.off("zoomend zoomlevelschange", this.DI, this), t.off("minzoom", this.DI, this), t.off("maxzoom", this.DI, this) }, disable: function() { return this.dI = !0, this.DI(), this }, enable: function() { return this.dI = !1, this.DI(), this }, aI: function(t) { this.dI || this.jE.zoomIn(this.jE.options.aW * (t.shiftKey ? 3 : 1)) }, sI: function(t) { this.dI || this.jE.zoomOut(this.jE.options.aW * (t.shiftKey ? 3 : 1)) }, AI: function(t, i, n, e, o) { var s = T._Q.s("a", n, e); return s.innerHTML = t, s.href = "#", s.title = i, T.oq.on(s, "mousedown dblclick", T.oq.stopPropagation).on(s, "click", T.oq.uw).on(s, "click", o, this).on(s, "click", this.OI, this), s }, DI: function() { var t = this.jE , i = "tdt-disabled"; T._Q.Tq(this.pI, i), T._Q.Tq(this.SI, i), (this.dI || t.fW === t.getMinZoom()) && T._Q.Rq(this.SI, i), (this.dI || t.fW === t.getMaxZoom()) && T._Q.Rq(this.pI, i) } }), T.Map.n({ FI: !1 }), T.Map._(function() { this.options.FI && (this.FI = new T.Control.Zoom, this.addControl(this.FI)) }), T.oI.zoom = function(t) { return new T.Control.Zoom(t) } , T.Control.fI = T.Control.extend({ options: { position: T_ANCHOR_BOTTOM_LEFT, GI: '
GS(2022)3124号 - 甲测资字1100471
' }, initialize: function(t) { T.setOptions(this, t), this.gI = {} }, onAdd: function(t) { t.cE = this, this.Ow = T._Q.s("div", "tdt-control-copyright"), T.oq && T.oq.iT(this.Ow); for (var i in t.hW) t.hW[i].VE && this.BE(t.hW[i].VE()); return this.Oe(), this.Ow }, HI: function(t) { return this.options.GI = t, this.Oe(), this }, BE: function(t) { return t ? (this.gI[t] || (this.gI[t] = 0), this.gI[t]++, this.Oe(), this) : this }, NE: function(t) { return t ? (this.gI[t] && (this.gI[t]--, this.Oe()), this) : this }, Oe: function() { if (this.jE) { var t = []; for (var i in this.gI) this.gI[i] && t.push(i); var n = []; this.options.GI && n.push(this.options.GI), t.length && n.push(t.join(", ")), this.Ow.innerHTML = n.join(" | ") } } }), T.Map.n({ cE: !0 }), T.Map._(function() { this.options.cE && (new T.Control.fI).addTo(this) }), T.oI.Ue = function(t) { return new T.Control.fI(t) } , T.Control.Copyright = T.Control.fI.extend({ options: { position: T_ANCHOR_BOTTOM_RIGHT, GI: "" }, initialize: function(t) { T.setOptions(this, t), this.hI = [] }, addCopyright: function(t) { if (this.hI["str" + t.id]) return void alert("copyright id 重复"); this.hI.push(t), this.hI["str" + t.id] = t; var i = T._Q.s("div", "tdt-control-copyright"); T.oq && T.oq.iT(i), i.innerHTML = t.content, t._span = i, this.Ow.appendChild(i); var n = this.jE.getCenter(); this.JI(n) }, removeCopyright: function(t) { this.Ow.removeChild(this.hI["str" + t.id]._span), this.hI["str" + t.id] = null; for (var i = 0; i < this.hI.length; i++) if (this.hI[i].id == t.id) { this.hI.splice(i, 1); break } }, JI: function(t) { if (this.jE) { if (t instanceof T.dq) var i = t; else var i = t.target.getCenter(); for (var n = 0; n < this.hI.length; n++) this.hI[n].bounds && (this.hI[n].bounds.contains(i) ? "none" == this.hI[n]._span.style.display && (this.hI[n]._span.style.display = "") : this.hI[n]._span.style.display = "none") } }, getCopyright: function(t) { return this.hI["str" + t] }, getCopyrightCollection: function() { return this.hI }, onAdd: function(t) { return this.jE = t, t.cE = this, this.Ow = T._Q.s("div", "tdt-control-copyright"), T.oq && T.oq.iT(this.Ow), this.Oe(), this.jI = t.on("move", this.JI, this), this.Ow }, onRemove: function(t) { T._Q.Qq(this.Ow), this.Ow = null, t.off("move"), this.jI = null } }), T.Control.DataSources = T.Control.extend({ options: { position: T_ANCHOR_BOTTOM_LEFT }, initialize: function(t) { T.setOptions(this, t), this.dataSources = new T.DataSources }, onAdd: function(t) { return this.jE = t, this.Ow = T._Q.s("div", "tdt-control-datasources"), T.oq && T.oq.iT(this.Ow), this.Ow.innerHTML = '
数据来源:国家地理信息公共服务平台
', this.Oe(), t.on("moveend", this.Oe, this), this.Ow }, onRemove: function() { T._Q.Qq(this.Ow), map.off("moveend", this.Oe, this), this.Ow = null }, getLayerArray: function() { for (var t = this.jE.getPanes().tilePane, i = ["vec", "cva", "ter", "cta", "img", "cia"], n = [], e = 0; e < i.length; e++) t.innerHTML.indexOf(i[e]) !== -1 && n.push(i[e]); return n.join(",") }, Oe: function() { if (this.jE) { var t = this.jE , i = this , n = t.getBounds() , e = n.getSouthWest() , o = n.getNorthEast() , s = "c"; "EPSG:4326" != t.getCode() && (s = "w"); var r = { level: t.getZoom(), bound: "'" + e.lng + "," + e.lat + "," + o.lng + "," + o.lat + "'", layers: this.getLayerArray(), projection: s }; this.dataSourcesInfo = "", this.dataSources.search(r, function(t) { var n = ""; null != t.ds && "null" != t.ds && (n = " & " + t.ds), i.dataSourcesInfo = "国家地理信息公共服务平台" + n, i.Ow.innerHTML = '
数据来源:国家地理信息公共服务平台' + n + "
" }), this.dataSourcesInfo = i.dataSourcesInfo } }, setColor: function(t) { return this.options.color = t, this.Ow.style.color = t, this }, getDataSources: function() { return this.dataSourcesInfo } }), T.oI.datasources = function(t) { return new T.Control.DataSources(t) } , T.Control.Scale = T.Control.extend({ options: { position: T_ANCHOR_BOTTOM_LEFT, Cr: 100, KI: !0, kI: !0, type: 1 }, onAdd: function(t) { var i = "tdt-control-scale" , n = T._Q.s("div", i) , e = this.options; return this.LI(e, i + "-line", n), t.on(e.te ? "moveend" : "move", this.Oe, this), t.sE(this.Oe, this), n }, onRemove: function(t) { t.off(this.options.te ? "moveend" : "move", this.Oe, this) }, setColor: function(t) { this.lI && (this.lI.style.borderColor = t, this.ZI.style.color = t), this.CI && 1 == this.type && (this.CI.style.borderColor = t, this.VI.style.color = t) }, LI: function(t, i, n) { this.type = t.type, t.KI && (this.lI = T._Q.s("div", i, n), this.ZI = T._Q.s("div", "tdt-control-scale-m", this.lI)), t.kI && 1 == t.type && (this.CI = T._Q.s("div", "tdt-control-scale-linebottom", n), this.VI = T._Q.s("div", "tdt-control-scale-i", this.CI)) }, Oe: function() { var t = this.jE , i = t.getSize().y / 2 , n = t.distance(t.vW([0, i]), t.vW([this.options.Cr, i])); this.cI(n) }, cI: function(t) { this.options.KI && t && this.BI(t), this.options.kI && t && 1 == this.type && this.vI(t) }, BI: function(t) { var i = this.NI(t) , n = i < 1e3 ? i + " 米" : i / 1e3 + " 公里"; this.bI(this.ZI, n, i / t, this.lI) }, vI: function(t) { var i, n, e, o = 3.2808399 * t; o > 5280 ? (i = o / 5280, n = this.NI(i), this.bI(this.VI, n + " 英里", n / i, this.CI)) : (e = this.NI(o), this.bI(this.VI, e + " 英尺", e / o, this.CI)) }, bI: function(t, i, n, e) { e.style.width = Math.round(this.options.Cr * n) + "px", t.innerHTML = i }, NI: function(t) { var i = Math.pow(10, (Math.floor(t) + "").length - 1) , n = t / i; return n = n >= 10 ? 10 : n >= 5 ? 5 : n >= 3 ? 3 : n >= 2 ? 2 : 1, i * n } }), T.oI.scale = function(t) { return new T.Control.Scale(t) } , T.Control.MI = T.Control.extend({ options: { nI: !0, position: T_ANCHOR_TOP_RIGHT, _I: !0, mI: !1 }, initialize: function(t, i, n) { T.setOptions(this, n), this.hW = [], this.Qi = 0, this.qi = !1; for (var e in t) this.Wi(t[e], e); for (e in i) this.Wi(i[e], e, !0) }, onAdd: function(t) { return this.DW(), this.Oe(), this.jE = t, t.on("zoomend", this.wi, this), this.Ow }, onRemove: function() { this.jE.off("zoomend", this.wi, this); for (var t = 0; t < this.hW.length; t++) this.hW[t].layer.off("add remove", this.Ei, this) }, addBaseLayer: function(t, i) { return this.Wi(t, i), this.jE ? this.Oe() : this }, addOverlay: function(t, i) { return this.Wi(t, i, !0), this.jE ? this.Oe() : this }, removeLayer: function(t) { t.off("add remove", this.Ei, this); var i = this._getLayer(T.d(t)); return i && this.hW.splice(this.hW.indexOf(i), 1), this.jE ? this.Oe() : this }, expand: function() { T._Q.Rq(this.Ow, "tdt-control-layers-expanded"), this.ei.style.height = null; var t = this.jE.getSize().y - (this.Ow.offsetTop + 50); return t < this.ei.clientHeight ? (T._Q.Rq(this.ei, "tdt-control-layers-scrollbar"), this.ei.style.height = t + "px") : T._Q.Tq(this.ei, "tdt-control-layers-scrollbar"), this.wi(), this }, collapse: function() { return L.DomUtil.Tq(this.Ow, "tdt-control-layers-expanded"), this }, DW: function() { var t = "tdt-control-layers" , i = this.Ow = T._Q.s("div", t); i.setAttribute("aria-haspopup", !0), T.oq.iT(i), T.oQ.touch || T.oq.IT(i); var n = this.ei = T._Q.s("form", t + "-list"); if (this.options.nI) { T.oQ.android || T.oq.on(i, { mouseenter: this.expand, mouseleave: this.collapse }, this); var e = this.Ri = T._Q.s("a", t + "-toggle", i); e.href = "#", e.title = "MI", T.oQ.touch ? T.oq.on(e, "click", T.oq.uw).on(e, "click", this.expand, this) : T.oq.on(e, "focus", this.expand, this), T.oq.on(n, "click", function() { setTimeout(T.D(this.ri, this), 0) }, this), this.jE.on("click", this.collapse, this) } else this.expand(); this.Ti = T._Q.s("div", t + "-base", n), this.ti = T._Q.s("div", t + "-separator", n), this.Yi = T._Q.s("div", t + "-overlays", n), i.appendChild(n) }, _getLayer: function(t) { for (var i = 0; i < this.hW.length; i++) if (this.hW[i] && T.d(this.hW[i].layer) === t) return this.hW[i] }, Wi: function(t, i, n) { t.on("add remove", this.Ei, this), this.hW.push({ layer: t, name: i, overlay: n }), this.options._I && t.setZIndex && (this.Qi++, t.setZIndex(this.Qi)) }, Oe: function() { if (!this.Ow) return this; T._Q.qq(this.Ti), T._Q.qq(this.Yi); var t, i, n, e, o = 0; for (n = 0; n < this.hW.length; n++) e = this.hW[n], this.Ui(e), i = i || e.overlay, t = t || !e.overlay, o += e.overlay ? 0 : 1; return this.options.mI && (t = t && o > 1, this.Ti.style.display = t ? "" : "none"), this.ti.style.display = i && t ? "" : "none", this }, Ei: function(t) { this.qi || this.Oe(); var i = this._getLayer(T.d(t.target)) , n = i.overlay ? "AQ" === t.type ? "overlayadd" : "overlayremove" : "AQ" === t.type ? "baselayerchange" : null; n && this.jE.wQ(n, i) }, ui: function(t, i) { var n = '" , e = document.createElement("div"); return e.innerHTML = n, e.firstChild }, Ui: function(t) { var i, n = document.createElement("label"), e = this.jE.hasLayer(t.layer); t.overlay ? (i = document.createElement("input"), i.type = "checkbox", i.className = "tdt-control-layers-selector", i.defaultChecked = e) : i = this.ui("tdt-base-layers", e), i.layerId = T.d(t.layer), T.oq.on(i, "click", this.ri, this); var o = document.createElement("span"); o.innerHTML = " " + t.name; var s = document.createElement("div"); n.appendChild(s), s.appendChild(i), s.appendChild(o); var r = t.overlay ? this.Yi : this.Ti; return r.appendChild(n), this.wi(), n }, ri: function() { var t, i, n, e = this.ei.getElementsByTagName("input"), o = [], s = []; this.qi = !0; for (var r = e.length - 1; r >= 0; r--) t = e[r], i = this._getLayer(t.layerId).layer, n = this.jE.hasLayer(i), t.checked && !n ? o.push(i) : !t.checked && n && s.push(i); for (r = 0; r < s.length; r++) this.jE.removeLayer(s[r]); for (r = 0; r < o.length; r++) this.jE.addLayer(o[r]); this.qi = !1, this.OI() }, wi: function() { for (var t, i, n = this.ei.getElementsByTagName("input"), e = this.jE.getZoom(), o = n.length - 1; o >= 0; o--) t = n[o], i = this._getLayer(t.layerId).layer, t.disabled = void 0 !== i.options.minZoom && e < i.options.minZoom || void 0 !== i.options.maxZoom && e > i.options.maxZoom }, Ii: function() { return this.expand() }, ii: function() { return this.collapse() } }), T.oI.layers = function(t, i, n) { return new T.Control.MI(t,i,n) } , T.Control.MapType = T.Control.extend({ includes: T.iQ.OQ, options: { position: T_ANCHOR_TOP_RIGHT, behavior: "previous", expand: "horizontal", _I: !0, maxLayersInRow: 5, manageLayers: !0 }, initialize: function(t, i) { T.S.l(arguments[0]) || (i = t, this.Oi(), t = T.w.oi), T.setOptions(this, i), this._expandDirection = this.options.position.indexOf("left") != -1 ? "right" : "left", this.options.manageLayers && this.on("activelayerchange", this.Pi, this), this.pi(t) }, Oi: function() { T.w.oi = [{ title: "地图", icon: T.Icon.Default.imagePath + "/map/maptype/vector.png", layer: TMAP_NORMAL_MAP }, { title: "卫星", icon: T.Icon.Default.imagePath + "/map/maptype/satellite.png", layer: TMAP_SATELLITE_MAP }, { title: "卫星混合", icon: T.Icon.Default.imagePath + "/map/maptype/satellitepoi.png", layer: TMAP_HYBRID_MAP }, { title: "地形", icon: T.Icon.Default.imagePath + "/map/maptype/terrain.png", layer: TMAP_TERRAIN_MAP }, { title: "地形混合", icon: T.Icon.Default.imagePath + "/map/maptype/terrainpoi.png", layer: TMAP_TERRAIN_HYBRID_MAP }] }, onAdd: function(t) { return this.Ow = T._Q.s("div", "tdt-iconLayers"), T._Q.Rq(this.Ow, "tdt-iconLayers_" + this.options.position), this.Ai(), t.on("click", this.collapse, this), this.options.manageLayers && this.Pi(), this.Ow }, onRemove: function(t) { t.off("click", this.collapse, this) }, pi: function(t) { this.hW = {}, t.map(function(t) { var i = T.d(t.layer); this.hW[i] = T.extend(t, { id: i }) } .D(this)), this.Ow && this.Ai() }, ai: function(t) { var i = t && this.hW[T.d(t)]; i && i.id !== this._activeLayerId && (this._previousLayerId = this._activeLayerId, this._activeLayerId = i.id, this.Ow && this.Ai(), this.wQ("activelayerchange", { layer: t })) }, expand: function() { this.Si().slice(1).map(function(t) { var i = this.si(t.id); T._Q.Tq(i, "tdt-iconLayers-layerCell_hidden") } .D(this)) }, collapse: function() { this.Si().slice(1).map(function(t) { var i = this.si(t.id); T._Q.Rq(i, "tdt-iconLayers-layerCell_hidden") } .D(this)) }, Di: function() { return this._activeLayerId ? this.hW[this._activeLayerId] : length(this.hW) ? first(this.hW) : null }, di: function() { var t = this.Di(); return t ? this._previousLayerId ? this.hW[this._previousLayerId] : find(this.hW, function(i) { return i.id !== t.id } .D(this)) || null : null }, Fi: function() { var t = [] , i = this.Di() ? this.Di().id : null , n = this.di() ? this.di().id : null; return each(this.hW, function(e) { e.id !== i && e.id !== n && t.push(e) }), t }, Si: function() { var t = {}; return t.previous = function() { var t = this.Fi(); return this.Di() && t.unshift(this.Di()), this.di() && t.unshift(this.di()), t } , t[this.options.behavior].apply(this, arguments) }, si: function(t) { if ("Microsoft Internet Explorer" != navigator.appName || "MSIE8.0" != navigator.appVersion.split(";")[1].replace(new RegExp("[ ]","g"), "")) var i = this.Ow.getElementsByClassName("tdt-iconLayers-layerCell"); else var i = document.getElementsByClassName("tdt-iconLayers-layerCell", this.Ow); for (var n = 0; n < i.length; n++) if (i[n].getAttribute("data-layerid") == t) return i[n] }, fi: function(t) { var i = T._Q.s("div", "tdt-iconLayers-layer"); if (i.setAttribute("data-layerid", t.id), t.title) { var n = T._Q.s("div", "tdt-iconLayers-layerTitleContainer") , e = T._Q.s("div", "tdt-iconLayers-layerTitle") , o = T._Q.s("div", "tdt-iconLayers-layerCheckIcon"); e.innerHTML = t.title, n.appendChild(e), i.appendChild(n), i.appendChild(o) } return t.icon && i.setAttribute("style", "background-image: url('" + t.icon + "')"), i }, Gi: function() { for (var t, i, n = this.Si(), e = this.Di() && this.Di().id, o = 0; o < n.length; o++) o % this.options.maxLayersInRow === 0 && (t = T._Q.s("div", "tdt-iconLayers-layersRow"), this.options.position.indexOf("bottom") === -1 ? this.Ow.appendChild(t) : prepend(this.Ow, t)), i = T._Q.s("div", "tdt-iconLayers-layerCell"), i.setAttribute("data-layerid", n[o].id), 0 !== o && T._Q.Rq(i, "tdt-iconLayers-layerCell_hidden"), n[o].id === e && T._Q.Rq(i, "tdt-iconLayers-layerCell_active"), "left" === this._expandDirection ? T._Q.Rq(i, "tdt-iconLayers-layerCell_expandLeft") : T._Q.Rq(i, "tdt-iconLayers-layerCell_expandRight"), i.appendChild(this.fi(n[o])), this.options.position.indexOf("right") === -1 ? t.appendChild(i) : prepend(t, i) }, gi: function(t) { T.oq.stopPropagation(t); var i = (t.target || t.srcElement, (t.currentTarget || t.target || t.srcElement).getAttribute("data-layerid")) , n = this.hW[i]; "undefined" != typeof n && (this.ai(n.layer), this.expand()) }, Hi: function() { if (each(this.hW, function(t) { var i = this.si(t.id); i && T.oq.on(i, "click", this.gi.D(this)) } .D(this)), "Microsoft Internet Explorer" != navigator.appName || "MSIE8.0" != navigator.appVersion.split(";")[1].replace(new RegExp("[ ]","g"), "")) var t = this.Ow.getElementsByClassName("tdt-iconLayers-layersRow"); else var t = document.getElementsByClassName("tdt-iconLayers-layersRow", this.Ow); for (var i = function(t) { T.oq.stopPropagation(t), this.expand() } .D(this), n = function(t) { T.oq.stopPropagation(t), this.collapse() } .D(this), e = function(t) { T.oq.stopPropagation(t) }, o = 0; o < t.length; o++) { var s = t[o]; T.oq.on(s, "mouseenter", i), T.oq.on(s, "mouseleave", n), T.oq.on(s, "mousemove", e) } }, Ai: function() { this.Ow.innerHTML = "", this.Gi(), this.Hi() }, Pi: function() { if (this.jE) { var t = this.Di() , i = this.di(); i ? this.jE.clearMapType(i.layer) : each(this.hW, function(t) { var i = t.layer; this.jE.clearMapType(i) } .D(this)), t && this.jE.setMapType(t.layer) } } }), T.oI.maptype = function(t, i) { return new T.Control.MapType(t,i) } , Array.prototype.map || (Array.prototype.map = function(t, i) { var n, e, o; if (null == this) throw new TypeError(" this is null or not defined"); var s = Object(this) , r = s.length >>> 0; if ("[object Function]" != Object.prototype.toString.call(t)) throw new TypeError(t + " is not a function"); for (i && (n = i), e = new Array(r), o = 0; o < r; ) { var h, a; o in s && (h = s[o], a = t.call(n, h, o, s), e[o] = a), o++ } return e } ), Function.prototype.D || (Function.prototype.D = function(t) { if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); var i = Array.prototype.slice.call(arguments, 1) , n = this , e = function() {} , o = function() { return n.apply(this instanceof e && t ? this : t, i.concat(Array.prototype.slice.call(arguments))) }; return e.prototype = this.prototype, o.prototype = new e, o } ), Array.prototype.indexOf || (Array.prototype.indexOf = function(t) { var i = -1; if (0 == this.length) return i; for (var n = 0; n < this.length; n++) if (this[n] === t) { i = n; break } return i } ), document.getElementsByClassName || (document.getElementsByClassName = function(t, i) { for (var n = [], e = (i || document).getElementsByTagName("*"), o = e.length, s = t.split(" "), r = s.length, h = 0; h < o; h++) { for (var a = e[h].className.split(" "), u = (a.length, []), c = 0; c < r; c++) a.indexOf(s[c]) !== -1 && u.push(!0); u.length === r && n.push(e[h]) } return n } ), T.hi = T.m.extend({ run: function(t, i, n, e) { this.uw(), this.Ji = t, this.aT = !0, this.ji = n || .25, this.Ki = 1 / Math.max(e || .5, .2), this.YU = T._Q.getPosition(t), this.ki = i.sQ(this.YU), this.eu = +new Date, this.wQ("start"), this.Li() }, uw: function() { this.aT && (this.li(!0), this.Zi()) }, Li: function() { this.Ci = T.S.C(this.Li, this), this.li(!0) }, li: function(t) { var i = +new Date - this.eu , n = 1e3 * this.ji; i < n ? this.Vi(this.ci(i / n), t) : (this.Vi(1), this.Zi()) }, Vi: function(t, i) { var n = this.YU.AQ(this.ki.fQ(t)); i && n.JQ(), T._Q.setPosition(this.Ji, n), this.wQ("step") }, Zi: function() { T.S.V(this.Ci), this.aT = !1, this.wQ("end") }, ci: function(t) { return 1 - Math.pow(1 - t, this.Ki) } }), T.Map.M({ gW: function(t, i, n) { if (i = void 0 === i ? this.fW : this.GW(i), t = this.Rw(T.fq(t), i, this.options.maxBounds), n = n || {}, this.Iw(), this.CW && !n.reset && n !== !0) { void 0 !== n.Tw && (n.zoom = T.extend({ Tw: n.Tw }, n.zoom), n.qw = T.extend({ Tw: n.Tw, duration: n.duration }, n.qw)); var e = this.fW !== i ? this.Bi && this.Bi(t, i, n.zoom) : this.vi(t, n.qw); if (e) return clearTimeout(this.Uw), this } return this.ZW(t, i), this }, centerAndZoom: function(t, i, n) { this.gW(t, i, n), this.options.datasourcesControl && "undefined" == typeof this.mapDataSources && (this.mapDataSources = (new T.Control.DataSources).addTo(this)) }, getDataSources: function() { return this.mapDataSources }, panBy: function(t, i) { if (t = T.SQ(t).hQ(), i = i || {}, !t.x && !t.y) return this.wQ("moveend"); if (i.Tw !== !0 && !this.getSize().contains(t)) return this.ZW(this._q(this.nq(this.getCenter()).AQ(t)), this.getZoom()), this; if (this.EE || (this.EE = new T.hi, this.EE.on({ step: this.Ni, end: this.bi }, this)), i.BU || this.wQ("movestart"), i.Tw !== !1) { T._Q.Rq(this.ow, "tdt-pan-anim"); var n = this.lw().sQ(t).hQ(); this.EE.run(this.ow, n, i.duration || .25, i.aU) } else this.Ww(t), this.wQ("move").wQ("moveend"); return this }, Ni: function() { this.wQ("move") }, bi: function() { T._Q.Tq(this.ow, "tdt-pan-anim"), this.wQ("moveend") }, vi: function(t, i) { var n = this.dE(t).KQ(); return !((i && i.Tw) !== !0 && !this.getSize().contains(n)) && (this.panBy(n, i), !0) } }), T.Map.n({ Nr: !0, Mi: 4 }); var zoomAnimated = T._Q.Iq && T.oQ.any3d && !T.oQ.mobileOpera; zoomAnimated && T.Map._(function() { this.ZE = this.options.Nr, this.ZE && (this.ni(), T.oq.on(this._i, T._Q.iq, this.mi, this)) }), T.Map.M(zoomAnimated ? { ni: function() { var t = this._i = T._Q.s("div", "tdt-proxy tdt-zoom-animated"); this.aw.mapPane.appendChild(t), this.on("Ge", function(i) { var n = T._Q.uq , e = t.style[n]; T._Q.Uq(t, this.nq(i.center, i.zoom), this.cW(i.zoom, 1)), e === t.style[n] && this.ER && this.QO() }, this), this.on("load moveend", function() { var i = this.getCenter() , n = this.getZoom(); T._Q.Uq(t, this.nq(i, n), this.cW(n, 1)) }, this) }, mi: function(t) { this.ER && t.propertyName.indexOf("bQ") >= 0 && this.QO() }, qO: function() { return !this.Ow.getElementsByClassName("tdt-zoom-animated").length }, Bi: function(t, i, n) { if (this.ER) return !0; if (n = n || {}, !this.ZE || n.Tw === !1 || this.qO() || Math.abs(i - this.fW) > this.options.Mi) return !1; var e = this.cW(i) , o = this.dE(t).FQ(1 - 1 / e); return !(n.Tw !== !0 && !this.getSize().contains(o)) && (T.S.C(function() { this.qE(!0).ge(t, i, !0) }, this), !0) }, ge: function(t, i, n, e) { n && (this.ER = !0, this.WO = t, this.RR = i, T._Q.Rq(this.ow, "tdt-zoom-anim")), this.wQ("Ge", { center: t, zoom: i, noUpdate: e }), setTimeout(T.D(this.QO, this), 250) }, QO: function() { this.ER && (T._Q.Tq(this.ow, "tdt-zoom-anim"), this.ER = !1, this.QE(this.WO, this.RR), T.S.C(function() { this.mw(!0) }, this)) } } : {}), T.Map.M({ enableContinuousZoom: function() { this.options.Mi = 4 }, disableContinuousZoom: function() { this.options.Mi = 0 }, isContinuousZoom: function() { return 4 == this.options.Mi } }), T.Map.M({ Ne: function(t, i, n) { function e(t) { var i = t ? -1 : 1 , n = t ? v : m , e = v * v - m * m + i * g * g * w * w , o = 2 * n * g * w , s = e / o , r = Math.sqrt(s * s + 1) - s , h = r < 1e-9 ? -18 : Math.log(r); return h } function o(t) { return (Math.exp(t) - Math.exp(-t)) / 2 } function s(t) { return (Math.exp(t) + Math.exp(-t)) / 2 } function r(t) { return o(t) / s(t) } function h(t) { return m * (s(E) / s(E + y * t)) } function a(t) { return m * (s(E) * r(E + y * t) - o(E)) / g } function u(t) { return 1 - Math.pow(1 - t, 1.5) } function c() { var n = (Date.now() - Q) / x , e = u(n) * q; n <= 1 ? (this.wE = T.S.C(c, this), this.QE(this._q(l.AQ(f.sQ(l).fQ(a(e) / w)), p), this.gw(m / h(e), p), { Ne: !0 })) : this.QE(t, i).mw(!0) } if (n = n || {}, n.Tw === !1 || !T.oQ.any3d) return this.gW(t, i, n); this.Iw(); var l = this.nq(this.getCenter()) , f = this.nq(t) , d = this.getSize() , p = this.fW; t = T.fq(t), i = void 0 === i ? p : i; var m = Math.max(d.x, d.y) , v = m * this.cW(p, i) , w = f.distanceTo(l) || 1 , y = 1.42 , g = y * y , E = e(0) , Q = Date.now() , q = (e(1) - E) / y , x = n.duration ? 10 * n.duration : 10 * q * .8; return this.qE(!0), c.call(this), this }, wO: function(t, i) { var n = this.NW(t, i); return this.Ne(n.center, n.zoom, i) } }), T.Map.M({ EO: { eO: 1e4, watch: !1 }, RO: function(t) { if (t = this.rO = T.extend({}, this.EO, t), !("geolocation"in navigator)) return this.TO({ code: 0, message: "tO" }), this; var i = T.D(this.YO, this) , n = T.D(this.TO, this); return t.watch ? this.UO = navigator.geolocation.watchPosition(i, n, t) : navigator.geolocation.getCurrentPosition(i, n, t), this }, uO: function() { return navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this.UO), this.rO && (this.rO.gW = !1), this }, TO: function(t) { var i = t.code , n = t.message || (1 === i ? "IO" : 2 === i ? "iO" : "eO"); this.rO.gW && !this.CW && this.mW(), this.wQ("OO", { code: i, message: "oO" + n + "." }) }, YO: function(t) { var i = t.coords.latitude , n = t.coords.longitude , e = new T.dq(i,n) , o = e.Jq(t.coords.accuracy) , s = this.rO; if (s.gW) { var r = this.nW(o); this.gW(e, s.maxZoom ? Math.min(r, s.maxZoom) : r) } var h = { KT: e, bounds: o, PO: t.PO }; for (var a in t.coords) "number" == typeof t.coords[a] && (h[a] = t.coords[a]); this.wQ("pO", h) } }); for (var n = 0; n < T.w.a.length; n++) T.lR.MR("TDT_style" + n, T.w.E + T.w.a[n]); for (var m = 0; m < T.w.A.length; m++) T.lR.nR("TDT_components" + m, T.w.E + T.w.A[m]); T.lR.bR(T.w.E + "/qv?tk=" + T.w.TMAP_AUTHKEY + "&t=" + Math.random() + "&callback=T.qv"); } )();